Affects Version/s: Minecraft 1.10.2, Minecraft 1.11 Pre-Release 1, Minecraft 1.11, Minecraft 1.11.2, Minecraft 17w06a, Minecraft 17w16b, Minecraft 1.12, Minecraft 18w02a, Minecraft 18w07a, Minecraft 18w07b, Minecraft 18w07c, Minecraft 1.13-pre1, Minecraft 1.13, Minecraft 18w30b, Minecraft 1.13.1, 19w36a, 1.15 Pre-release 3, 1.15.2, 20w13b, 20w17a, 20w21a, 1.16 Pre-release 5, 1.16 Pre-release 8, 20w28a, 1.16.2
Fix Version/s: None
Lava cannot light the following (otherwise flammable) blocks on fire:
- coal blocks
- hay bales
- dried kelp blocks
- small flowers
- sweet berry bushes
- Place lava somewhere without existing flammable blocks to spread fire to.
- Place coal blocks anywhere in, around, or above the lava, with air blocks adjacent where fire should be able to light.
- Watch the coal never burn.
- Increase the rate of fire spread 100x, using /gamerule randomTickSpeed 300, just to be sure.
It's because lava and fire use different ways to tell if a block is flammable:
Lava (net.minecraft.block.BlockStaticLiquid) decides whether to light a block on fire by consulting the block's Material, by calling net.minecraft.block.material.getCanBurn(World worldIn, BlockPos pos).
Coal is Material.ROCK, hay and dried kelp blocks are Material.GRASS, and 1-block flowers are Material.PLANTS. These materials will tell lava that those blocks cannot burn.
Incidentally, this is the only place .getCanBurn() is used.
Fire (net.minecraft.block.BlockFire) decides whether to spread to a block by consulting its own hard-coded list of burnable blocks, by calling its own method .canCatchFire(IBlockAccess worldIn, BlockPos pos) – and this has nothing whatsoever to do with block material.
Coal, hay, dried kelp and the flowers are all on that list.
Incidentally also, that is the only place .canCatchFire() is used.