User:User-12316399/Technical changes/Tags

A green highlight in the "Tag name" column implies a new tag.

#minecraft:impermeable
The #minecraft:impermeable block tag currently includes all full glass blocks, and nothing else. As a result, this excludes a multitude of non-full blocks, resulting in them producing dripping particles even though they shouldn't as the fluid above them is completely visible.

Ideally, trapdoors would only be impermeable when open, piston heads only when not facing up, and pistons only when not facing down or not extended. However, this would either require the addition of block state combination support to tags, or for the permeability to be defined in the code instead of through tags.

Blocks which plants can be planted on
Alongside bamboo, 1.14 introduced the #minecraft:bamboo_plantable_on tag, for defining what blocks bamboo can be placed on. This tag is unique; despite many other plants having restrictions as to what plants can be placed on them, these are mostly hardcoded (although mushrooms do have a dedicated tag for blocks they can be planted on without light level restrictions), and tag changing capabilities are minimal. This is not a desirable inconsistency.

Instead of _plantable_on, these could be instead suffixed with _bases.

Two-block-tall flowers, grass and ferns could also make use of these tags, as any potential issues caused by the top half not recognising the bottom half as a valid support block could be resolved in the code instead.

Blocks broken faster by shears
1.17 added tags for blocks which can be broken faster by pickaxes, axes, hoes and shovels. However, for some reason, shears were not given a tag and remain hardcoded, despite having blocks they can break faster.

Multiblock structures: conduits, enchanting libraries and nether portals
1.16 added the #minecraft:beacon_base_blocks tag, allowing for any block to be defined as a valid base for a beacon. However, similar multiblock structures in the game were left behind and remain hardcoded. this may be due to two of these only having a single member in vanilla, however having these be tag controlled is still probably a better option.

If wood variant bookshelves are ever implemented, it may be worth also adding a #minecraft:bookshelves tag, and then having this tag be included in #minecraft:enchanting_table_power_blocks.

Blocks which deny connections
Currently there are a multitude of full, solid blocks which fences, walls, iron bars and glass panes connect to. Their specification in the code is absurd, containing a mixture of hardcoded cases and a tag. It would be much better to just havge a dedicated tag for these instead, analogously to #minecraft:wall_post_override.

Due to leaves not being considered as having a solid face for placement, it is unclear if leaves being in this tag, or even their current listing in this line of code, is redundant anyway.

Crop blocks
Crops in Minecraft, unlike other plant blocks, have an interesting ability in that they can preserve farmland below them for all eternity, no matter how dry, from reverting to dirt due to random ticks.

While this tag would only contain crops, it could also be expanded to include blocks such as flowers, saplings and other plants it can support.

Block tags to rename
Content from the unintuitive ID list could go here, such as the "logs" tag containing wood, rather than there being a "wood" tag also containing logs.

Other things to change about tags

 * Entity tags should be shown in the debug screen, like block and fluid tags are.
 * The names of directories for tags are inconsistent with asset directories.
 * blocks should be changed to block
 * items should be changed to item
 * entity_types should be changed to entity  <!--stone granite polished_granite diorite polished_diorite andesite polished_andesite cobblestone gold_ore deepslate_gold_ore iron_ore deepslate_iron_ore coal_ore deepslate_coal_ore nether_gold_ore lapis_ore deepslate_lapis_ore lapis_block dispenser sandstone chiseled_sandstone cut_sandstone cobweb gold_block iron_block bricks mossy_cobblestone obsidian spawner diamond_ore deepslate_diamond_ore diamond_block furnace cobblestone_stairs stone_pressure_plate iron_door redstone_ore deepslate_redstone_ore snow snow_block netherrack basalt polished_basalt stone_bricks mossy_stone_bricks cracked_stone_bricks chiseled_stone_bricks iron_bars chain brick_stairs stone_brick_stairs nether_bricks nether_brick_fence nether_brick_stairs enchanting_table brewing_stand cauldron water_cauldron lava_cauldron powder_snow_cauldron end_stone sandstone_stairs emerald_ore deepslate_emerald_ore ender_chest emerald_block command_block cobblestone_wall mossy_cobblestone_wall anvil chipped_anvil damaged_anvil light_weighted_pressure_plate heavy_weighted_pressure_plate redstone_block nether_quartz_ore hopper quartz_block chiseled_quartz_block quartz_pillar quartz_stairs dropper white_terracotta orange_terracotta magenta_terracotta light_blue_terracotta yellow_terracotta lime_terracotta pink_terracotta gray_terracotta light_gray_terracotta cyan_terracotta purple_terracotta blue_terracotta brown_terracotta green_terracotta red_terracotta black_terracotta iron_trapdoor prismarine prismarine_bricks dark_prismarine prismarine_stairs prismarine_brick_stairs dark_prismarine_stairs prismarine_slab prismarine_brick_slab dark_prismarine_slab terracotta coal_block red_sandstone chiseled_red_sandstone cut_red_sandstone red_sandstone_stairs stone_slab smooth_stone_slab sandstone_slab cut_sandstone_slab petrified_oak_slab cobblestone_slab brick_slab stone_brick_slab nether_brick_slab quartz_slab red_sandstone_slab cut_red_sandstone_slab purpur_slab smooth_stone smooth_sandstone smooth_quartz smooth_red_sandstone purpur_block purpur_pillar purpur_stairs end_stone_bricks repeating_command_block chain_command_block magma_block red_nether_bricks bone_block observer white_glazed_terracotta orange_glazed_terracotta magenta_glazed_terracotta light_blue_glazed_terracotta yellow_glazed_terracotta lime_glazed_terracotta pink_glazed_terracotta gray_glazed_terracotta light_gray_glazed_terracotta cyan_glazed_terracotta purple_glazed_terracotta blue_glazed_terracotta brown_glazed_terracotta green_glazed_terracotta red_glazed_terracotta black_glazed_terracotta white_concrete orange_concrete magenta_concrete light_blue_concrete yellow_concrete lime_concrete pink_concrete gray_concrete light_gray_concrete cyan_concrete purple_concrete blue_concrete brown_concrete green_concrete red_concrete black_concrete dead_tube_coral_block dead_brain_coral_block dead_bubble_coral_block dead_fire_coral_block dead_horn_coral_block tube_coral_block brain_coral_block bubble_coral_block fire_coral_block horn_coral_block dead_tube_coral dead_brain_coral dead_bubble_coral dead_fire_coral dead_horn_coral dead_tube_coral_fan dead_brain_coral_fan dead_bubble_coral_fan dead_fire_coral_fan dead_horn_coral_fan dead_tube_coral_wall_fan dead_brain_coral_wall_fan dead_bubble_coral_wall_fan dead_fire_coral_wall_fan dead_horn_coral_wall_fan polished_granite_stairs smooth_red_sandstone_stairs mossy_stone_brick_stairs polished_diorite_stairs mossy_cobblestone_stairs end_stone_brick_stairs stone_stairs smooth_sandstone_stairs smooth_quartz_stairs granite_stairs andesite_stairs red_nether_brick_stairs polished_andesite_stairs diorite_stairs polished_granite_slab smooth_red_sandstone_slab mossy_stone_brick_slab polished_diorite_slab mossy_cobblestone_slab end_stone_brick_slab smooth_sandstone_slab smooth_quartz_slab granite_slab andesite_slab red_nether_brick_slab polished_andesite_slab diorite_slab brick_wall prismarine_wall red_sandstone_wall mossy_stone_brick_wall granite_wall stone_brick_wall nether_brick_wall andesite_wall red_nether_brick_wall sandstone_wall end_stone_brick_wall diorite_wall smoker blast_furnace grindstone stonecutter bell lantern soul_lantern warped_nylium crimson_nylium structure_block jigsaw netherite_block ancient_debris crying_obsidian respawn_anchor lodestone blackstone blackstone_stairs blackstone_wall blackstone_slab polished_blackstone polished_blackstone_bricks cracked_polished_blackstone_bricks chiseled_polished_blackstone polished_blackstone_brick_slab polished_blackstone_brick_stairs polished_blackstone_brick_wall gilded_blackstone polished_blackstone_stairs polished_blackstone_slab polished_blackstone_pressure_plate polished_blackstone_wall chiseled_nether_bricks cracked_nether_bricks quartz_bricks amethyst_block budding_amethyst tuff calcite oxidized_copper weathered_copper exposed_copper copper_block copper_ore deepslate_copper_ore oxidized_cut_copper weathered_cut_copper exposed_cut_copper cut_copper oxidized_cut_copper_stairs weathered_cut_copper_stairs exposed_cut_copper_stairs cut_copper_stairs oxidized_cut_copper_slab weathered_cut_copper_slab exposed_cut_copper_slab cut_copper_slab waxed_copper_block waxed_weathered_copper waxed_exposed_copper waxed_oxidized_copper waxed_oxidized_cut_copper waxed_weathered_cut_copper waxed_exposed_cut_copper waxed_cut_copper waxed_oxidized_cut_copper_stairs waxed_weathered_cut_copper_stairs waxed_exposed_cut_copper_stairs waxed_cut_copper_stairs waxed_oxidized_cut_copper_slab waxed_weathered_cut_copper_slab waxed_exposed_cut_copper_slab waxed_cut_copper_slab lightning_rod dripstone_block deepslate cobbled_deepslate cobbled_deepslate_stairs cobbled_deepslate_slab cobbled_deepslate_wall polished_deepslate polished_deepslate_stairs polished_deepslate_slab polished_deepslate_wall deepslate_tiles deepslate_tile_stairs deepslate_tile_slab deepslate_tile_wall deepslate_bricks deepslate_brick_stairs deepslate_brick_slab deepslate_brick_wall chiseled_deepslate cracked_deepslate_bricks cracked_deepslate_tiles smooth_basalt raw_iron_block raw_copper_block raw_gold_block-->