aboutsummaryrefslogtreecommitdiff
path: root/src/map.cpp
AgeCommit message (Collapse)Author
2017-01-04Improve getPointedThing() (#4346)Dániel Juhász
* 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()).
2016-12-24Move PP() and PP2() macros to basic_macros.hRogier
Instead of redefining them everywhere.
2016-12-07Liquids: Update flow on block loadMillersMan
When loading a block add liquid-nodes that might flow away or spread to neighbours to the transforming_liquid queue.
2016-12-07Liquids: Preserve flow state if 'ignore' is a neighbourMillersMan
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.
2016-12-07Map::isValidPosition: Return false instead of throwing exceptionMillersMan
2016-10-27CleanupDániel Juhász
2016-10-27Use node lighting for liquid spreadingDániel Juhász
This commit modifies the liquid transforming procedure to light and unlight nodes instead of whole map blocks.
2016-10-27Improved lightingDániel Juhász
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
2016-07-03Add MapSettingsManager and new mapgen setting script API functionskwolekr
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.
2016-06-11Make node timers more efficientEkdohibs
2016-05-22Implement a PostgreSQL backendLoic Blot
2016-05-17DB::loadBlock copy removal & DB backend cleanupLoic Blot
* 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
2016-03-30Remove expensive copy of ContentFeaturesgregorycu
2016-01-20Liquid flow: Prevent water spreading on ignoreparamat
2016-01-07Liquids: Flow into and destroy 'floodable' nodesparamat
Add new node property 'floodable', default false Define "air" as floodable = true in C++ and lua
2015-10-14Rename macros with two leading underscoresShadowNinja
These names are reserved for the compiler/library implementations.
2015-10-14Use warningstream for log messages with WARNINGShadowNinja
Remove DTIME macro and its uses, too
2015-10-04Add emerge completion callback mechanismkwolekr
Major refactor of emerge.cpp and Map::init/finishBlockMake
2015-10-04Define and use limit constants for Irrlicht fixed-width typeskwolekr
2015-09-23Add /emergeblocks command and core.emerge_area() Lua APIkwolekr
2015-08-13Fix segfault caused by a8e238ed06ee8285ed4459e9deda3117419837f6Perttu Ahola
2015-08-13Add count based unload limit for mapblocksest31
2015-08-02Add map limit config optionrubenwardy
2015-05-17Record MapBlock modification reasons as flags instead of stringskwolekr
This improves performance of MapBlock::raiseModified by a factor of 6. Also, clean up mapblock.h a bit and inline small functions.
2015-05-08Ensure that Map::findNodesWithMetadata() reports nodes strictly within the ↵kwolekr
node-granular area
2015-05-05Add core.find_nodes_with_meta() script APIkwolekr
2015-04-01Move globals from main.cpp to more sane locationsCraig Robbins
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
2015-03-07Respect game mapgen flags and save world noise paramsngosang
2015-03-07For usages of assert() that are meant to persist in Release builds (when ↵Craig Robbins
NDEBUG is defined), replace those usages with persistent alternatives
2015-03-06Don't start a server for map migrationShadowNinja
2015-03-06Clean up database API and save the local map on an intervalShadowNinja
2015-03-04ABMHandler and player_collisions use sequential read/write. Switch from ↵Loic Blot
std::list to std::vector * Also remove dead code Map::unloadUnusedData which is dead since a long time
2015-02-18Fix unused (and so, broken) enable_rollback_recording. This option must be ↵Loic Blot
reloaded at server loop but loaded when server starts, for data consistency (not a hot load variable) ok @ShadowNinja
2015-02-17Replace std::list by std::vector into ClientMap::updateDrawList, ↵Loic Blot
Map::timerUpdate and ServerMap::save(). This will speedup the loop reading into those functions
2015-02-17Replace std::list by std::vector into timerUpdate callsLoic Blot
2015-02-17Replace std::list by std::vector into ServerMap::listAllLoadableBlocks ↵Loic Blot
ServerMap::listAllLoadedBlocks and their database backends. This adds a speedup on database migration and /clearobjects command
2015-01-27Fix missing map_meta.txt error when creating new worldskwolekr
A missing map_meta.txt should be treated simply as if there were a blank file.
2015-01-18Fix all warnings and remove -Wno-unused-but-set cflagkwolekr
2015-01-18Water fixesgregorycu
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
2015-01-18Create empty default constructor for MapNodeCraig Robbins
2015-01-15Add ability to delete MapBlocks from mapkwolekr
Also add a Lua API and chatcommand for this
2015-01-15Change UniqueQueue to use a queue and a set.unknown
2015-01-14Fix use of uninitialized dataCraig Robbins
2015-01-12Attempt to fix occasional issue of uninitialized MapBlock datakwolekr
2015-01-05Shorten ManualMapVoxelManipulator to MMVManipkwolekr
2014-12-29Fix -Wtype-limits warnings and remove disabling of -Wtype-limitsCraig Robbins
2014-12-29LuaVoxelManip: Remove blank allocatorkwolekr
2014-12-27LuaVoxelManip: Add option to allocate blank datakwolekr
2014-12-23Make limiting of the reflow liquids queue size optionalCraig Robbins
If liquid_queue_purge_time == 0 then disable the queue size limiting and make this the default setting Additionally, liquid_loop_max now defaults to 100000
2014-12-18Do not allow the m_transforming_liquid queue to increase until all RAM is ↵Craig Robbins
consumed