User:User-12316399/Technical changes/Further flattening

This page documents a theoretical extension to the flattening of 1.13 which aims to further split up and rename blocks, items, entities and the like. This flattening helps for multiple reasons; it eliminates some potentially redundant or illegal block state combinations as well as removing outright unneccesary block states and NBT tags, allows certain blocks, items and entities to show correctly within the Statistics page instead of being lumped under one unintuitive entry, makes certain IDs more intuitive, and splits up skin variants of mobs into separate entity IDs analogously to how texture variants of blocks were split up into separate block IDs. Also listed within this page are some blocks and items existent within Bedrock Edition which could be ported to Java Edition in parity interests.

This proposal deals with Java Edition, but much of this information could also apply to a theoretical Bedrock Edition flattening as well.

Block states
Values of block states are true unless otherwise stated.

to do: sign text colours, beehive anti-dripping blockstate, other anti-dripping blockstates, farmland distances (XYZ)?

Redstone rails have their power set to a range to fix an infinite rail powering bug: This could also allow for visual power level representation using an additional texture with tints.

The open block state is added to many containers for consistency with barrels, which could be helpful for resource packs.

Splitting potions
It may be worth splitting up potions into separate item IDs for each different potion. This would also alleviate the problem with unique potions not showing up within the Statistics screen. Potions would as a result be able to be individually textured as well. A custom potion of each type which still uses NBT data to define effects, colours and the like would be kept, for use in mapmaking and other purposes.

Whether other potion-related objects such as potion particles, potion-filled cauldrons, thrown splash potions, thrown lingering potions, shot tipped arrows and areaeffectclouds should also be split is not known. It will likely be just a tad excessive, and only the items will be neccessary.

Every single potion strength and length variant could be completely flattened out, which would result in hundreds of new block and item IDs, which may be undesirable and excessive, but would allow even more accurate statistics.

Splitting potions may also allow for data-driven brewing recipes as in crafting.

Fluid IDs
See /Fluid changes

Entity IDs
As every single other object which comes in all different wood variants has been separated into different IDs for each wood type, boats should obviously follow suit.

Mob skin variants
Numerous skin variants which require NBT data to fully define should be completely split out into different entity IDs, analogously to how trivial "skin variants" of blocks were split in 1.13's flattening (such as the variants of planks or igneous stones and their polished variants receiving unique IDs). to do: maybe split villagers per biome? As there are 3000+ variants of tropical fish, they are split according to the name of the fish, which is a combination of the shape and pattern, which has 12 possible values. The NBT tag is retained and used to define the rest of the fish.

Pandas use a gene-based format that may be far more difficult to successfully separate, and are best left as-is.

Sound IDs
what to put here: split lever sound event into two, split normal and baby sound events for mobs, have sounds.json specify pitch changes for many remaining sounds instead of having them use stuff deep in the code, fix iron ordering

Blocks
New block entity for existing water_cauldron:


 * Block entity data
 * : Same format as dyed armor's Color. Used for dyeing leather armor (player types and horse armor). Used for the tint of the contained water if the dyed block state is true. If the dyed block state is set to false, cauldrons instead use the biome color for the tint, and item uses will clear dyes rather than apply color.
 * : Same format as dyed armor's Color. Used for dyeing leather armor (player types and horse armor). Used for the tint of the contained water if the dyed block state is true. If the dyed block state is set to false, cauldrons instead use the biome color for the tint, and item uses will clear dyes rather than apply color.

Block entity for the new potion_cauldron:


 * Block entity data

Names
The nominal ID remains unchanged in these cases.

Other notes

 * unstable_tnt could be added to the Creative inventory.
 * oak_leaves, birch_leaves, spruce_leaves, jungle_leaves, acacia_leaves and dark_oak_leaves could be made pushable by pistons instead of disappearing like the tree variants, and also be immune to ravagers.
 * fire would no longer check its dimension for whether it burns infinitely on top of bedrock; rather, it checks whether or not the block it's on is contained within the #infiniburn_blocks tag. The newly added flammable_bedrock block, ported from Bedrock Edition and split from the main bedrock block in block ID terms, is part of this tag.
 * All blocks with obstructed set to true will display a message over the hotbar when attempting to be used.
 * Cacti, flowers, grass and ferns can now all be placed on dirt, coarse dirt, grass blocks, sand, red sand, clay and gravel.
 * Shulker boxes with open set to true now allow light to pass through their sides. (see )
 * Intersecting nether portal frames can now be lit and nether portal blocks now appear as crosses where appropriate.
 * Logs should only be able to support their own species of leaves, so that incomplete deforestation looks less ugly. (May be worth splitting leaves even more, e.g. oak leaves and tall oak leaves?)

Other block state changes

 * waterlogged
 * Remove completely once fluids have been completely separated from blocks.
 * Could potentially be kept for beds, so that beds with this set to true cannot be slept in without the water breathing/conduit power effect, as it currently is on Bedrock Edition.