The Fire tag works in a way that negative values mean an entity is not on fire and positive numbers mean an entity is on fire. 0 is kind of special because when the fire value increase from -1 to 0 the entity is "really" set
on fire for 8 seconds.
For players the default value is -20 acting as 19 ticks of buffer before actually catching fire, for all other entities it is -1 meaning there is no buffer.
The problem is that in some situations the fire value is reset by setting it to 0 instead of the correct default value. This results in situations where a mob or player is standing in fire but not actually catching fire.
- Build a setup as shown in Setup.png
- Place a cow inside the free space and make sure it is in the water
- Set the log block, on the side the cow is at, on fire
- Remove the water before the cow is dead
→ You will see that the cow is not catching fire, but still takes damage
and does not drop cooked beef
These are the methods which reset the fire value not correctly.
Last updated for 20w07a, Mojang names
- net.minecraft.world.entity.Entity.setSecondsOnFire(int): Fire protection could result in fire value of 0 (?)