Blocks burn faster in humid biomes
The bug:
Blocks are faster destroyed or replaced by fire in humid biomes. Expected would be the opposite.
Code analysis:
Based on 1.12 decompiled using MCP 9.40 PRE 1
The method net.minecraft.block.BlockFire.updateTick(World, BlockPos, IBlockState, Random) subtracts 50 from the value which is passed to the method net.minecraft.block.BlockFire.catchOnFire(World, BlockPos, int, Random, int) as chance if the fire block is in a humid biome (such as a jungle). The condition for fire to destroy or replace the block is random.nextInt(chance) < i, which means the smaller the chance value the likelier it is that the condition is true. Therefore the method BlockFire.updateTick should probably add 50 to the value instead.
Linked Issues
Created Issue:
Blocks burn faster in humid biomes
The bug
Blocks are faster destroyed or replaced by fire in humid biomes. Expected would be the opposite.
Code analysis
Based on 1.12 decompiled using MCP 9.40 PRE 1
The method net.minecraft.block.BlockFire.updateTick(World, BlockPos, IBlockState, Random) subtracts 50 from the value which is passed to the method net.minecraft.block.BlockFire.catchOnFire(World, BlockPos, int, Random, int) as chance if the fire block is in a humid biome (such as a jungle). The condition for fire to destroy or replace the block is random.nextInt(chance) < i, which means the smaller the chance value the likelier it is that the condition is true. Therefore the method BlockFire.updateTick should probably add 50 to the value instead.
The bug
Blocks are faster destroyed or replaced by fire in humid biomes. Expectedwouldbe the opposite.Code analysis
Based on 1.12 decompiled using MCP 9.40 PRE 1
The method net.minecraft.block.BlockFire.updateTick(World, BlockPos, IBlockState, Random) subtracts 50 from the value which is passed to the method net.minecraft.block.BlockFire.catchOnFire(World, BlockPos, int, Random, int) as chance if the fire block is in a humid biome (such as a jungle). The condition for fire to destroy or replace the block is random.nextInt(chance) < i, which means the smaller the chance value the likelier it is that the condition is true. Therefore the method BlockFire.updateTick should probably add 50 to the value instead.
The bug:
Blocks are faster destroyed or replaced by fire in humid biomes. Expected would be the opposite.Steps:
1. Create two worlds: Buffet world Desert, Buffet world Jungle. Do the following tests in each one.
2. Create a bunch of wood to burn:
/fill ~ 100 ~ ~100 100 ~100 minecraft:oak_wood /tp ~ 101 ~ /give @s minecraft:flint_and_steel
3. Burn it.
Code analysis:
Based on 1.12 decompiled using MCP 9.40 PRE 1The method net.minecraft.block.BlockFire.updateTick(World, BlockPos, IBlockState, Random) subtracts 50 from the value which is passed to the method net.minecraft.block.BlockFire.catchOnFire(World, BlockPos, int, Random, int) as chance if the fire block is in a humid biome (such as a jungle). The condition for fire to destroy or replace the block is random.nextInt(chance) < i, which means the smaller the chance value the likelier it is that the condition is true. Therefore the method BlockFire.updateTick should probably add 50 to the value instead.
The bug:
Blocks are faster destroyed or replaced by fire in humid biomes. Expected would be the opposite.Steps:
1. Create two worlds: Buffet world Desert, Buffet world Jungle. Do the following tests in each one.
2. Create a bunch of wood to burn:
/fill ~ 100 ~ ~100 100 ~100 minecraft:oak_wood /tp ~ 101 ~ /give @s minecraft:flint_and_steel
3. Burn it.
Code analysis:
Based on 1.12 decompiled using MCP 9.40 PRE 1The method net.minecraft.block.BlockFire.updateTick(World, BlockPos, IBlockState, Random) subtracts 50 from the value which is passed to the method net.minecraft.block.BlockFire.catchOnFire(World, BlockPos, int, Random, int) as chance if the fire block is in a humid biome (such as a jungle). The condition for fire to destroy or replace the block is random.nextInt(chance) < i, which means the smaller the chance value the likelier it is that the condition is true. Therefore the method BlockFire.updateTick should probably add 50 to the value instead.
is cloned by
Cannot reproduce in 19w36a. Code still subtracts 50, as the analysis above says, but fire spreads markedly more slowly in humid biomes than in dry.
It appears the code analysis was wrong. The method is actually called checkBurnOut (Mojang name) and the lower value only increases the chance of burning out. However, the chance of spreading fire when burning out remains unchanged.
Edit: The code analysis was likely correct, see MC-225779. Spreading fire in the latest version indeed remains unchanged compared to non-humid biomes, but due to faster burning down fire will also faster replace adjacent blocks with fire.