| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
clock_gettime() is a far better clock than gettimeofday().
Even better than clock_gettime() is that you can select either
CLOCK_MONOTONIC, or even CLOCK_MONOTONIC_RAW. These clocks offer
high precision time. And the _RAW variant will never roll back
due to NTP drift or daylight savings, or otherwise.
I've adjusted this code to select the right clock method auto-
matically based on what's available in the OS. This means that
if you're running a very old linux version, MacOS or other,
you will automatically get the best clocksource available.
I've tested all Linux clocksources by selectively compiling and
running a 10k+ timer test suite. In all cases I confirmed that
the 3 POSIX Linux clocksources worked properly, and were
selected properly.
I've modified the OS X compile path to use the high-res clock
source for all time functions, but I can't confirm it works or
that it compiles.
As for WIN32, I confirmed that the used clocksource is indeed
a Monotonic clocksource, so good news: that code section appears
to be exactly what it should be.
|
|
|
|
|
|
| |
`errorstream` must not be overly verbose as clientside it is directly printed
onto the ingame chat window. These days, the serverlist can contain > 200k bytes,
so better print it to warningstream if the data buffer is too long.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Outdated servers are always sending tiledefs with culling
enabled no matter what, as the value was previously entirely
ignored.
To compensate, we must (1) detect that we're running against
an old server with a new client, and (2) disable culling for
mesh, plantlike, firelike and liquid draw types no matter what
the server is telling us.
In order to achieve this, we need to bump the protocol version
since we cannot rely on the tiledef version, and test for it
being older. I've bumped the protocol version, although that
should have likely happened in the actual change that introduced
the new backface_culling PR #3578. Fortunately that's only 2
commits back at this point.
We also explicitly test for the drawtype to assure we are not
changing the culling value for other nodes, where it should
remain enabled.
This was tested against various pub servers, including 0.4.13 and
0.4.12.
Fixes #3598
|
| |
|
|
|
|
| |
Previous commits broke it... :(
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Backface culling is enabled by default for all tiles, as this
is how the lua parser initializes each tiledef. We revert to
always using the value from the tiledef since it is always
read and serialized.
Mods that wish to enable culling for e.g. mesh nodes, now can
specify the following to enable backface culling:
tiles = {{ name = "tex.png", backface_culling = true }},
Note the double '{' and use of 'name' key here! In the same
fashion, backface_culling can be disabled for any node now.
I've tested this against the new door models and this properly
allows me to disable culling per node. I've also tested this
against my crops mod which uses mesh nodes where culling needs
to be disabled, and tested also with plantlike drawtype nodes
where we want this to continue to be disabled.
No default setting has changed. The defaults are just migrated
from nodedef.cpp to c_content.cpp.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
fixes minetest/minetest_game#786
|
|
|
|
|
|
|
|
|
| |
cloneMesh() has to use a switch in order to create a different
mesh buffer type depending on vertex type. (Credit: the new cloneMesh
was written by RealBadAngel.)
To avoid repetitive code, all other methods use getVertexPitchFromType()
to automatically adapt the indexing to the vertex type at runtime.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Lua_api.txt: Document 'minetest.registered_biomes'
Minimal: Remove 'mapgen_air' alias
Cavegen: Add fallback node for 'mapgen_ice'
Dungeongen: Add fallback node for 'mapgen_river_water_source'
Mgv5: Remove unnecessary '#include util/directiontables.h'
Add missing 'this->'s in makeChunk()
Mgv6: Edit empty line formatting
Remove leading spaces in makeChunk()
Add missing spaces after 'for' and 'if'
Mgv7: Edit empty line formatting
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The pageflip mode requires a stereo quadbuffer, and a modern graphic
card. Patch tested with NVidia 3D Vision.
The mini-map is not drawn, but that's what is done for topbottom and
sidebyside modes as well.
Also most of the time the user would prefer the HUD to be off. That's
for the user to decide though, and toggle it manually.
Finally, the interocular distance (aka eye separation) is twice as much
as the "3d_paralax_strength" settings. I find this a strange design
decision. I didn't want to chance this though, since it's how the other
3d modes interpret this settings.
|
|
|
|
| |
more robust
|
|
|
|
|
|
|
|
|
|
| |
Previously, we assumed that reply->str was NULL
terminated. However, this turned out to be not true,
as users reported crashes in strlen connected to
where reply->str was appended to an std::string.
Use the method recomended by the docs, to read the
length separately.
|
|
|
|
|
| |
Add new node property 'floodable', default false
Define "air" as floodable = true in C++ and lua
|
|
|
|
| |
cases. This change covers all use cases.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Removing the target file on other platforms was enabled likely unintentionally
by commit 5f1f1151d3a9c113902630adc16cc3f4845da7ba.
This may be the reason why there has been corruption of files on Linux on hard
shutdowns.
Previously I described the problem and this fix in issue #3084.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
My commit
e2d54c9f9275e4f77ec33be8054621d42945f7a4 "shutdown when requested from lua in singleplayer too"
broke minetest's feature to connect to servers. The client crashed
after the connection init was complete.
Thanks to @sofar for reporting the bug.
Fixes #3498.
|
|
|
|
|
|
|
| |
If an `XDG_CACHE_HOME` can't be found or `RUN_IN_PLACE` is enabled,
`path_cache` is left at its default of `$PATH_USER/cache`
(at a time when `PATH_USER` is `..`), rather than being reset to
`$PATH_USER/cache` after `PATH_USER` has been properly set.
|
|
|
|
| |
And replace manual tests for error with SQLOK() where possible.
|
|
|
|
|
|
| |
This allows other applications (e.g. minetestmapper) to interrogate
the database while minetest is running, without causing an almost
certain minetest crash.
|
| |
|
|
|
|
|
|
|
|
| |
items"
This reverts commit f14e7bac54af65e3d3d99f89f23f114b17058e49.
Reverted due to missinterpretation of agreement, obvious dislike and me not interested in doing fights for feature I don't actually need
|
|
|
|
|
|
| |
This reverts commit 91bafceee6606fab79db1bde4cba01b84fed65c7.
Reverted due to missinterpretation of agreement, obvious dislike and me not interested in doing fights for feature I don't actually need
|
|
|
|
| |
once per step
|
| |
|
| |
|
|
|
|
|
|
|
| |
Before, minetest.request_shutdown didn't shut down
singleplayer instances or server instances from the server tab.
This commit fixes this. Fixes #3489.
|
|
|
|
|
| |
-> Redis backend: break from switch to fix bug
-> Dummy and redis backends: reserve the count so that creating the list is faster
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Previous commit
70ea5d552e283bd5bce3278cbf3819bd87ba2602 "Add support for limiting rotation of automatic face movement dir entitys"
by sapier has broken minetest's feature to open worlds. This was due to a
missing stack pop operation.
Thanks to @oleastre for reporting this bug and suggesting the fix.
|
| |
|
| |
|
| |
|
|
|
|
| |
or change the nametag text of players
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
3D Mandelbrot/Mandelbar
3D Christmas Tree
3D Mandelbulb
3D Cosine Mandelbulb
4D Mandelbulb
Plus corresponding julia set for each
Add credits for formulas
Rename parameter 'formula' to 'fractal'
Speed optimisations
|
| |
|
|
|
|
|
|
|
| |
* Horizontal and vertical are used wrongly. Use height and width because
horizontal/vertical describes different things. Thanks @kilbith for pointing out.
* Update minetest.conf.example and settings_translation_file.cpp
* Correct maximum/minimum copy paste mistake.
|