| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce a new contentfeatures version (8). When clients
connect using v27 protocol version, they can assume that
the tiledef.backface_culling is trustable, but if clients
connect to servers providing contentfeatures version 7,
then the v27 clients know that backface culling settings
provided by the server in tiledefs are bogus for mesh,
plantlike, firelike or liquid drawtype nodes.
thanks to hmmmm, est31, nerzhul.
Tested on new client - new server, new client - old server
old client - new server.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Add new node property 'floodable', default false
Define "air" as floodable = true in C++ and lua
|
|
|
|
| |
Remove DTIME macro and its uses, too
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This simplifies NodeResolver logic and makes some interfaces cleaner.
|
|
|
|
|
|
| |
- Add ability to explicitly reset NodeResolve state (useful for unittesting)
- Remove non-essential NodeResolve methods modifying state from INodeDefManager
- Add const qualifier to NodeDefManager and ContentFeatures serialize
|
|
|
|
|
|
| |
Minor misc. NodeResolver cleanups
Prefix faux content type constants for testing with t_ to avoid
confusion or name collisions
|
|
|
|
|
|
|
|
|
| |
NodeResolver name lists now belong to the NodeResolver object instead of
the associated NodeDefManager. In addition to minimizing unnecessary
abstraction and overhead, this move permits NodeResolvers to look up nodes
that they had previously set pending for resolution. So far, this
functionality has been used in the case of schematics for
serialization/deserialization.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move debug streams to log.cpp|h
Move GUI-related globals to clientlauncher
Move g_settings and g_settings_path to settings.cpp|h
Move g_menuclouds to clouds.cpp|h
Move g_profiler to profiler.cpp|h
|
|
|
|
| |
JIT-upscaled using an image transformation, right at the time they're added to a mesh or particle; images used in 2D elements are left unscaled. This should fix any remaining issues with HUD elements.
|
|
|
|
|
|
|
| |
std::vector on Environment.cpp"
This reverts parts of commit 9749d9fee6db99da1ab861dc04ec63ef973db3e0, which breaks node resolver
list clearing
|
|
|
|
| |
The bar is only drawn when the user will notice a change, which prevents time overheads that this commit would cause, resulting from useless draws.
|
|
|
|
| |
NDEBUG is defined), replace those usages with persistent alternatives
|
|
|
|
|
|
|
| |
std::vector on Environment.cpp
* Also change some std::list to std::vector for ClientMap::renderMap
* Remove disabled code in ClientMap::renderMap, disabled since a long time
|
|
|
|
| |
tile.hpp to src/client/
|
| |
|
|
|
|
| |
Also add NodeResolver callbacks on the client
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Craig Robbins <kde.psych@gmail.com>
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
CNodeDefManager::get()
VoxelManipulator::addArea()
|
| |
|
| |
|
|
|
|
|
| |
Set content to fallback on AddNode failure
Consider node list requests with no results as failed
|
| |
|
|
|
|
|
|
| |
Check if mesh is here before adding to meshcollector.
Fix deleting the meshes.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|