Cubitect / cubiomes-viewer

An efficient graphical Minecraft seed finder and map viewer.
GNU General Public License v3.0
1.02k stars 60 forks source link

[Feature Request] Temperature and Humidity layer views for Beta 1.7 #212

Closed KaiSandstrom closed 1 year ago

KaiSandstrom commented 1 year ago

sampleBiomeNoiseBeta() returns integers from 0 to 10000 when bnb->nptype >= 0, and these could be used to display the noise maps on the viewer panel like in 1.18+.

Note that in Beta 1.7, the returned integers are only positive, so instead of -10000 representing a black pixel, 0 will need to represent a black pixel. Also, Beta climate noise exists at a 1:1 scale, not 1:4.

For the sake of clarity, since this isn't fully documented in the code or in my commit notes: As is apparent in the code, when sampling humidity noise on its own, the raw humidity sample is multiplied by the temperature sample. In the original Minecraft code, the biome lookup table was programmatically generated upon startup, and the first step of generating the table was to multiply humidity by temperature and use this adjusted value for humidity. So while the Cubiomes biome lookup function for Beta 1.7 uses the non-adjusted humidity as input, the biomes themselves are determined by the adjusted humidity. As far as I can tell, every other use of humidity noise in Beta Minecraft explicitly multiplies humidity by temperature. So, in sampleBiomeNoiseBeta(), the returned value for humidity when nptype == NP_HUMIDITY is multiplied by temperature.

Also, this is more of a Cubiomes thing, but it seems appropriate to mention it here -- The int64_t* argument np could probably be removed from sampleBiomeNoiseBeta(). I included it to match sampleBiomeNoise() before I was certain how the function would work, and never got around to removing it once it was clear that it didn't have a purpose for Beta.

Delvin4519 commented 1 year ago

Mark this as resolved.