aboutsummaryrefslogtreecommitdiff
path: root/src/nodedef.cpp
Commit message (Collapse)AuthorAge
* Backface culling: Ignore setting in tiledef from old servers.Auke Kok2016-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Allow per-tiles culling.Auke Kok2016-01-20
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* Liquids: Flow into and destroy 'floodable' nodesparamat2016-01-07
| | | | | Add new node property 'floodable', default false Define "air" as floodable = true in C++ and lua
* Use warningstream for log messages with WARNINGShadowNinja2015-10-14
| | | | Remove DTIME macro and its uses, too
* Change i++ to ++iDavid Jones2015-08-25
|
* Remove use of engine sent texture tiling flags - theyre no longer neededRealBadAngel2015-08-20
|
* Fix tiling issues for PLANTLIKE and FIRELIKE with FSAARealBadAngel2015-08-05
|
* Add wielded (and CAOs) shaderRealBadAngel2015-07-21
|
* Fix relief mapping issuesRealBadAngel2015-07-16
|
* Add new leaves style - simple (glasslike drawtype)RealBadAngel2015-07-08
|
* Minimap updateRealBadAngel2015-06-28
|
* Add minimap featureRealBadAngel2015-06-27
|
* Add texture overridingrubenwardy2015-05-19
|
* NodeResolver: Remove NodeResolveMethodkwolekr2015-05-07
| | | | This simplifies NodeResolver logic and makes some interfaces cleaner.
* NodeDefManager: Improve const-correctness of interfaceskwolekr2015-05-05
| | | | | | - 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
* Tests: Add NodeResolver unittestskwolekr2015-05-05
| | | | | | Minor misc. NodeResolver cleanups Prefix faux content type constants for testing with t_ to avoid confusion or name collisions
* Schematics: Refactor NodeResolver and add NodeResolveMethodkwolekr2015-04-16
| | | | | | | | | 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 globals from main.cpp to more sane locationsCraig Robbins2015-04-01
| | | | | | | | | | | | 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
* Move texture_min_size even further down the pipe. Now, textures are ↵Aaron Suen2015-03-31
| | | | 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.
* Revert "Fix issue #2441: crash on respawn, since a conversion std::list to ↵kwolekr2015-03-20
| | | | | | | std::vector on Environment.cpp" This reverts parts of commit 9749d9fee6db99da1ab861dc04ec63ef973db3e0, which breaks node resolver list clearing
* Finer progress bar updates when initializing nodesest312015-03-15
| | | | 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.
* For usages of assert() that are meant to persist in Release builds (when ↵Craig Robbins2015-03-07
| | | | NDEBUG is defined), replace those usages with persistent alternatives
* Fix issue #2441: crash on respawn, since a conversion std::list to ↵Loic Blot2015-03-05
| | | | | | | 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
* Replace std::list to std::vector into tile.cpp (m_texture_trash) and move ↵Loic Blot2015-03-05
| | | | tile.hpp to src/client/
* NodeDef: Clear NodeResolver related entries too in clear()kwolekr2015-01-04
|
* NodeResolver: Perform callback immediately if node registration phase finishedkwolekr2015-01-04
| | | | Also add NodeResolver callbacks on the client
* Remove freezemelt (the remainder of proller nonsense)kwolekr2015-01-04
|
* Add support back for resolving group names in NodeResolverkwolekr2014-12-29
|
* Set fallback content if resolving content vector requires everythingkwolekr2014-12-27
|
* Redefine NodeResolver interface and replace with callback mechanismkwolekr2014-12-27
|
* Change TileSpec::frames to be std::vector not std::mapunknown2014-12-21
| | | | Signed-off-by: Craig Robbins <kde.psych@gmail.com>
* Use std::string::empty() instead of size() where applicableAnton2014-12-12
|
* NodeResolver: Fix some comments and use const references for paramskwolekr2014-12-12
|
* NodeResolver: Fix cancelNode and cancelNodeListkwolekr2014-12-11
|
* Recalculate normals for mesh #0. Fix for issue #1902.RealBadAngel2014-12-05
|
* Optimise functions from CNodeDefManager and VoxelManipulatorCraig Robbins2014-11-21
| | | | | CNodeDefManager::get() VoxelManipulator::addArea()
* Fix wallmounted mesh rotationsShadowNinja2014-11-19
|
* Add option to enable mesh caching, add wallmounted for meshes.RealBadAngel2014-10-29
|
* Add NodeResolver documentationkwolekr2014-10-28
| | | | | Set content to fallback on AddNode failure Consider node list requests with no results as failed
* Add NodeResolver and clean up node name -> content ID resolution systemkwolekr2014-10-26
|
* Recalculate normals for cached meshes.RealBadAngel2014-10-21
| | | | | | Check if mesh is here before adding to meshcollector. Fix deleting the meshes.
* Fix some indentation in nodedef.cppKahrl2014-10-20
|
* Fix memory leak caused by mesh nodes (and nodeboxes)Kahrl2014-10-20
|
* Custom collision boxes node property.RealBadAngel2014-10-19
|
* Add meshnode drawtype.RealBadAngel2014-10-18
|
* Fix special tile backspace cullingkwolekr2014-10-03
|
* Fix broken plantlike drawtype.RealBadAngel2014-10-03
|
* Fix misc. style issueskwolekr2014-10-03
|
* Clean up nodedef.cppkwolekr2014-10-03
|
* Add optional framed glasslike drawtypeBlockMen2014-10-02
|