Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-109948

Lava cannot ignite certain flammable blocks

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • None
    • 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, 1.16.4, 20w45a, 20w46a, 20w51a, 21w03a, 21w05b, 21w06a, 21w16a, 1.17, 1.17.1 Pre-release 2, 1.17.1, 21w44a, 1.18 Release Candidate 3, 22w03a, 22w15a, 22w45a, 1.19.3, 1.20 Pre-release 1, 1.20.1, 1.20.2 Pre-release 2, 23w44a, 23w45a, 24w09a
    • Confirmed
    • Block states
    • Low
    • Gameplay

      The bug

      Lava cannot light the following (otherwise flammable) blocks on fire:

      • coal blocks
      • hay bales
      • dried kelp blocks
      • small flowers
      • sweet berry bushes
      • scaffolding
      • targets
      • saplings
      • azalea
      • cave vines
      • dripleaf
      • hanging roots
      • spore blossoms
      • hanging signs
      • pink petals
      • glow lichen Fixed

      How to reproduce

      1. Place lava somewhere without existing flammable blocks to spread fire to.
      2. Place coal blocks anywhere in, around, or above the lava, with air blocks adjacent where fire should be able to light.
      3. Watch the coal never burn.
      4. Increase the rate of fire spread 100x, using /gamerule randomTickSpeed 300, just to be sure.

      Code analysis – MCP 9.35 (1.11) names

      It's because lava and fire use different ways to tell if a block is flammable:

      1.
      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.

      2.
      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.

        1. 2016-11-10_19.41.55.png
          2016-11-10_19.41.55.png
          142 kB
        2. 2021-06-12_17.57.50.png
          2021-06-12_17.57.50.png
          1.05 MB
        3. Flowers not burning.png
          Flowers not burning.png
          179 kB
        4. Hay bales not burning.png
          Hay bales not burning.png
          228 kB

            Unassigned Unassigned
            GrifterMage Callum Milne
            Votes:
            23 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              CHK: