So, a while back there was a thread by MirceaKitsune asking for mapgenv7's temperature/humidity and weather to be added back into the core game. In that thread, Paramat said he wished that a mod would be made to show the temperature and humidity at any given point in the world... Leading to this: the tempidity mod, which creates a simple HUD display for each individual player to see the temperature and humidity where they are currently standing!

Right now, it still is in development, but it has enough basic functionality to be worth posting, and development is proceeding quickly. There is currently no set up at all on the player's end, you just have to put the mod in and enable it. It has been extensively tested with watershed and skylands, but regular mapgenv7 environments are still experimental, as they use 2D perlin noise parameters instead of the 3D noise used by the aforementioned mods.

Version 0.2 UPDATE:

Now compatible with 2D noise-based mgv7 (basically, default mgv7).

Formula for determining the display value of temperature and humidity in skylands and watershed has been reworked, temperatures now range from -35 C to +35 C. Humidity is in percentage.

Good to see this mod, i'll try it out in watershed. This will work in watershed and skylands, but mgv7 uses 2D temp and humidity with different parameters ... mgv7 is about to be rewritten by hmmmm soon anyway. Looking at your code ... you're using hmmmm's temp and humidity scalings, which are tuned exclusively for mgv7 noise parameters where temp has 1 octave, humidity has 2 octaves. As this mod has my watershed noise params you need to (and are free too) design new scalings that make sense :)
Range of noise value depends on number of octaves and persistence:
1 octave, any persistence > variation from -1 to 1 mgv7 temp
2 octaves, persist 0.5 > -1.5 to 1.5
2 octaves, persist 0.6 > -1.6 to 1.6 mgv7 humid
3 octaves, persist 0.5 > -1.75 to 1.75 watershed

Thanks for the input, paramat. I knew something was missing, and that clears up a lot of it.
When I update it, I'll include the default 2D params that were in one of your other posts relating to mgv7, and have the mod check first for mgv7 in the mapgen parameters, and set it to the 2D noise if so. Then, I'll have it check for watershed and/or skylands, and swap the parameters to 3D if they are found... that will also entail a secondary check with skylands so as to switch between values depending on elevation (if it's at skylands level, switch to the 3D noise)

Also, thank you for the noise value table. That is something that has always been the hardest part for me to grasp when working with perlin. When you have 3 octaves marked as watershed, what aspect of it are you referring to?

Nam ex spatio, omnes res venire possunt.
Why let the ground limit you when you can reach for the sky?
Back to college now, yay for sophomore year schedules. :P

Yeah i should explain this ...
Generated noise value is the addition of several 'octaves'. The first octave has amplitude of 1 (outputs -1 to 1). Each additional octave is noise with a characteristic 'spread' / 'scale' half the size of the previous octave, and an amplitude that is 'persistence' x amplitude of previous octave. Each higher octave generates finer detail with a smaller amplitude, the persistence is the balance of fine detail to coarse detail.

Formula for determining the display value of temperature and humidity in skylands and watershed has been reworked, temperatures now range from -35 C to +35 C. Humidity is in percentage.

Automatic check for installed mods and currently used mapgen.

I've done a little testing with the default temperature by using Big Freaking Dig, but the results are still inconclusive on whether or not it is accurate. There certainly are some temperatures that are not natural though...

Nam ex spatio, omnes res venire possunt.
Why let the ground limit you when you can reach for the sky?
Back to college now, yay for sophomore year schedules. :P

Here's another suggestion ... the dtime function runs roughly 10 times per second, and each time you cycle through all players and do perlin noise calculations, this is unecessary procesing load to update the readout so often, i would put in a math.random (or some better method) so it updates every few seconds :)

Actually, in the first version, I had some commented-out code that would make it update only every 2 seconds. I guess it would be a good idea to add that back in. :P Until I get around to pushing a new commit with that, here's the easy way to do it:
insert "local utime = 1" before the register_globalstep() call in the code
enclose everything within the globalstep in an if block saying "if utime >= 1 then"
just before the 'end' statement of the if block, put "utime = 0"
after the end for the if block, put "utime = utime + dtime"

Nam ex spatio, omnes res venire possunt.
Why let the ground limit you when you can reach for the sky?
Back to college now, yay for sophomore year schedules. :P

Ahhh... I have been waiting for this! I was afraid I'll be left without any way to detect temperature and humidity, after the weather system has been carelessly removed (in my opinion at least).

I strongly suggest that this or another method to read temp / humidity is added to builtin! IMO this is a feature that should have its own default function, and which every mod should have easy access to.

@Krock: Sadly, no, it is not particularly fast. Even when I set it to only update every second or two (which reminds me I still need to push those changes), it causes notable slowdown. I intend to find a more efficient method... Which leads to

@MirceaKitsune: Glad that you like the idea. There was a method built in for reading temp/humidity (mintest.get_humidity(pos)), but the wiki says the functions were removed. Still haven't tested to see if they're still coded in though... If they are, they probably would be quicker than my method.

Nam ex spatio, omnes res venire possunt.
Why let the ground limit you when you can reach for the sky?
Back to college now, yay for sophomore year schedules. :P

* `minetest.get_heat(pos)`
* Returns the heat at the position, or `nil` on failure.
* `minetest.get_humidity(pos)`
* Returns the humidity at the position, or `nil` on failure.
* `minetest.get_biome_data(pos)`
* Returns a table containing:
* `biome` the biome id of the biome at that position
* `heat` the heat at the position
* `humidity` the humidity at the position
* Or returns `nil` on failure.

* `minetest.get_heat(pos)`
* Returns the heat at the position, or `nil` on failure.
* `minetest.get_humidity(pos)`
* Returns the humidity at the position, or `nil` on failure.
* `minetest.get_biome_data(pos)`
* Returns a table containing:
* `biome` the biome id of the biome at that position
* `heat` the heat at the position
* `humidity` the humidity at the position
* Or returns `nil` on failure.

*Gasp!* Finally! I've been waiting for this for a while. Thanks paramat!

* `minetest.get_heat(pos)`
* Returns the heat at the position, or `nil` on failure.
* `minetest.get_humidity(pos)`
* Returns the humidity at the position, or `nil` on failure.
* `minetest.get_biome_data(pos)`
* Returns a table containing:
* `biome` the biome id of the biome at that position
* `heat` the heat at the position
* `humidity` the humidity at the position
* Or returns `nil` on failure.

Will any of this get backported to 0.4.17dev? If the answer stays no, then this mod can be used for 0.4.16 and earlier to still gain these benefits.