The initial problem was that mutex_auto_lock.h tries to use std::unique_lock<std::mutex>
despite mutex.h not using C++11's std::mutex on Windows. The problem here is the mismatch
between C++11 usage conditions of the two headers. This commit moves the decision logic
to threads.h and makes sure mutex.h, mutex_auto_lock.h and event.h all use the same features.
This is part 2 for 5f084cd98d
Other improvements:
* Use the defined ItemGroupList when used
* make Client::checkPrivilege const
* inline some trivial functions
* Add ActiveObjectMap typedef
* Add SettingsEntries typedef
'getSpawnLevelAtPoint()' did not account for disabled mountains, it
was possible to be spawned in mid-air where a mountain surface would
have been.
Avoid check for river area if rivers are disabled.
Accounting for block width in the centrifugal force but then ignoring it for speed calculation actually
makes the game less realistic. On the other hand, applying blockwidth for speed calculation as well
(since planet speed / "visual units per seconds" != flat speed / "blocks per second") makes the game
almost unplayable (since movement is very slow high up and way to fast near the core). The best
compromise is to not care about block width at all and assume the planet just "scales" depending on the
player position.
Add 'core.LIGHT_MAX = 14' to builtin/game/constants.lua with the intention
to replace misplaced 'default.LIGHT_MAX = 14' in Minetest Game.
Add comment in light.h requiring the constant be changed in both places.
Add lighting bug warning to note in lua_api.txt.
There are hundreds of mod uses of 15 which causes a lighting bug.
Inverts the given channels of the base image.
Mode may contain the characters "r", "g", "b", "a".
Only the channels that are mentioned in the mode string will be inverted.
Gravity / centrifugal force calculation didn't take into account that
the heights on a planet that preserves the aspect ratio of nodes is
actually different from just the y-coordinate, since the shader applies
the exponential function. The centrifugal force now also takes the width
of blocks into account (real speed = blocks per second * block width),
so that the force near the planet center and further up is now more
realistic.
Falling through the planet basically behaves like falling through a
torus with a hole. There are no special visuals to it, it's basically
just teleporting to the other side of the planet and reversing the
vertical velocity.