Minecraft 1.8.9, Minecraft 16w05a, Minecraft 16w05b, Minecraft 16w06a, Minecraft 16w07a, Minecraft 16w07b, Minecraft 1.9 Pre-Release 1, Minecraft 1.9 Pre-Release 2, Minecraft 1.9 Pre-Release 3, Minecraft 1.9 Pre-Release 4, Minecraft 1.9, Minecraft 1.9.1 Pre-Release 1, Minecraft 1.9.1 Pre-Release 2, Minecraft 1.9.1 Pre-Release 3
While the "freezing point" of water source blocks and rain was made to be .15f for Minecraft 1.7 (previously had two different values (.15f, .2f)), the specific usage of this temperature value is still inconsistent – in some places in the code, "freezing" is less than or equal to .15f, while in other places it is less than .15f (and not equal to).
While biomes cannot normally have temperatures between .1f and .2f,
meaning this issue has no effect in pure vanilla, add-ons that manipulate biome temperature can expose this vanilla bug the y-based temperature degradation and x/z-based perlin noise can drop the effective temperature to 0.15F from as much as 0.4749F.
I wrote a simple mod to highlight the locations it manifests in - it makes the entire world an Extreme Hills biome, disables snow tile placement, and places an orange stained clay block directly under the places that have a temperature of exactly 0.15F. After generating the world, I shut down my game and loaded it back up in vanilla.
The first picture is an aerial view of the effected block locations (at least in Extreme Hills) while the second picture is of the rain falling (without my worldgen mod, taken in the latest snapshot - 16w05b).
If you want a copy of the world to check out for yourself, I still have it. I forgot to disable mineshafts, but it's still easy to check and verify that I'm showing this in pure vanilla and without command blocks.
With this bug, rain animation and audio is played, yet snow tiles form.
To make fixing it as simple a process as possible, these are all of them in 1.9:
>= .15f is not freezing
bng.p()V (source line 1399; weather/shader rendering class, smoke and rain particles)
bng.c(F)V (source line 1500; weather/shader rendering class, rain/snow rendering)
< .15f is freezing
akd.h(Laht;Lcj;)V (source line 198)
aig.b(Laht;Ljava/util/Random;Latf;IID)V (source line 302; base biome class, used for worldgen)
> .15f is not freezing
aht.e(Lcj;Z)Z (source line 2031; base world class, can block freeze at location)
aht.f(Lcj;Z)Z (source line 2059; base world class, can it snow at location)