| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
This commit updates mapblocks' light if necessary when they are loaded.
This removes ghost lighting.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix the maths that check if any part of a mapblock or sector is over the
set map_generation_limit.
Therefore avoid the loading of any over-limit blocks that were previously
generated when map_generation_limit was larger. The set limit can vary
for a world because it is not yet a per-world mapgen parameter, even when
it is sometimes it will be changed deliberately.
Therefore avoid a player being returned to world centre if they re-enter
a world while being over-limit.
Fix the createSector() crash caused by a mob spawning over-limit in an
over-limit mapblock
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Improved getPointedThing()
The new algorithm checks every node exactly once.
Now the point and normal vector of the collision is also returned in the
PointedThing (currently they are not used outside of the function).
Now the CNodeDefManager keeps the union of all possible nodeboxes, so
the raycast won't miss any nodes. Also if there are only small
nodeboxes, getPointedThing() is exceptionally fast.
Also adds unit test for VoxelLineIterator.
* Cleanup, code move
This commit moves getPointedThing() and
Client::getSelectedActiveObject() to ClientEnvironment.
The map nodes now can decide which neighbors they are connecting to
(MapNode::getNeighbors()).
|
|
|
|
| |
Instead of redefining them everywhere.
|
|
|
|
|
| |
When loading a block add liquid-nodes that might flow away or spread to
neighbours to the transforming_liquid queue.
|
|
|
|
|
|
|
| |
Prevent waterfalls from falling down or streams from flowing away when the
source node is in an unloaded block - Nodes near a CONTENT_IGNORE node will
be interpreted as if the ignored node is a liquid node that just supports
the current state of the nodes in question.
|
| |
|
| |
|
|
|
|
| |
This commit modifies the liquid transforming procedure to light and
unlight nodes instead of whole map blocks.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit rewrites the procedure that is responsible for light
updating.
this commit
-provides iterative solutions for unlighting and light spreading
-introduces a new priority queue-like container for the iteration
-creates per-node MapBlock caching to reduce retrieving MapBlocks from
the map
-calculates with map block positions and in-block relative node
coordinates
-skips light updating if it is not necessary since the node's new light
will be the same as its old light was
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit refactors the majority of the Mapgen settings system.
- MapgenParams is now owned by MapSettingsManager, itself a part of ServerMap,
instead of the EmergeManager.
- New Script API functions added:
core.get_mapgen_setting
core.get_mapgen_setting_noiseparams,
core.set_mapgen_setting, and
core.set_mapgen_setting_noiseparams.
- minetest.get/set_mapgen_params are deprecated by the above new functions.
- It is now possible to view and modify any arbitrary mapgen setting from a mod,
rather than the base MapgenParams structure.
- MapgenSpecificParams has been removed.
|
| |
|
| |
|
|
|
|
|
| |
* Remove the copy from db::loadBlock by using a pointer to the destination
* cleanup db backend, the child backend doesn't have to set their functions as virtual
|
| |
|
| |
|
|
|
|
|
| |
Add new node property 'floodable', default false
Define "air" as floodable = true in C++ and lua
|
|
|
|
| |
These names are reserved for the compiler/library implementations.
|
|
|
|
| |
Remove DTIME macro and its uses, too
|
|
|
|
| |
Major refactor of emerge.cpp and Map::init/finishBlockMake
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This improves performance of MapBlock::raiseModified by a factor of 6.
Also, clean up mapblock.h a bit and inline small functions.
|
|
|
|
| |
node-granular area
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
NDEBUG is defined), replace those usages with persistent alternatives
|
| |
|
| |
|
|
|
|
|
|
| |
std::list to std::vector
* Also remove dead code Map::unloadUnusedData which is dead since a long time
|
|
|
|
|
|
| |
reloaded at server loop but loaded when server starts, for data consistency (not a hot load variable)
ok @ShadowNinja
|
|
|
|
|
|
| |
Map::timerUpdate and ServerMap::save().
This will speedup the loop reading into those functions
|
| |
|
|
|
|
|
|
| |
ServerMap::listAllLoadedBlocks and their database backends.
This adds a speedup on database migration and /clearobjects command
|
|
|
|
| |
A missing map_meta.txt should be treated simply as if there were a blank file.
|
| |
|
|
|
|
|
|
|
| |
Change must_reflow to a deque
Add overload for MapBlock::raiseModified that takes a const char*. This is a speed improvement.
Comment out unused variable
Optimisations to block offset calculations
|
| |
|
|
|
|
| |
Also add a Lua API and chatcommand for this
|
| |
|
| |
|
| |
|
| |
|
| |
|