Affects Version/s: 1.16.2
Fix Version/s: None
Buckets of water can be emptied in empty water source blocks and water blocks with replaceable waterlogged blocks (seagrass etc.), but not in the source blocks with waterlogged blocks that aren't replaceable (slabs, stairs, etc.).
I expected a bucket being able to be emptied in a water source block that contains any waterlogged block.
I emptied a bucket of water in a waterlogged slab, and the water was instead placed in the block above the slab rather than in the slab.
- Water buckets can be emptied in empty water source blocks
- Water buckets can be emptied in any waterlogged block you can immediately replace by another block (e.g. seagrass)
- Water buckets can not be emptied in any waterlogged block that you have to destroy before you can place another block in it
- Make a shallow 1x1x1 pool of water
- In survival mode: empty a bucket of water in the pool
The water in the bucket disappears and no water is placed - as intended
- Place seagrass in the pool
- In survival mode: empty a bucket of water in the pool that contains the seagrass
The water in the bucket disappears and no water is placed - again intended
- Place a slab in the pool, make sure it's waterlogged
- In survival mode: empty a bucket of water in the pool that contains the slab
The water in the bucket is either placed in the block above the pool to empty the bucket, or is not placed and the bucket is not emptied - not intended: the water should be placed in the slab even though it's waterlogged
When placing water a basic decision is made whether water can be placed in a certain position. This check first checks if the block accepts water for waterlogging, and if not it checks whether it can be replaced by water. Then, when that check passes the block where the water is placed is set to its waterlogged state, if possible, and else it replaces the block with water. If the check fails, it tries to place water in an adjacent block rather than the targeted block by doing the same logic. If the check then fails again the water is not placed. More specifically:
Analyzing this logic against several blocks to place water in: