summaryrefslogtreecommitdiff
path: root/src/map.cpp
Commit message (Collapse)AuthorAge
* Map generation limit: Cache as 'const' not 'const static'paramat2017-01-08
|
* Map generation limit: Fix checks for block/sector over-limitparamat2017-01-08
| | | | | | | | | | | | | | 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
* Improve getPointedThing() (#4346)Dániel Juhász2017-01-04
| | | | | | | | | | | | | | | | | | | * 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()).
* Move PP() and PP2() macros to basic_macros.hRogier2016-12-24
| | | | Instead of redefining them everywhere.
* Liquids: Update flow on block loadMillersMan2016-12-07
| | | | | When loading a block add liquid-nodes that might flow away or spread to neighbours to the transforming_liquid queue.
* Liquids: Preserve flow state if 'ignore' is a neighbourMillersMan2016-12-07
| | | | | | | 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.
* Map::isValidPosition: Return false instead of throwing exceptionMillersMan2016-12-07
|
* CleanupDániel Juhász2016-10-27
|
* Use node lighting for liquid spreadingDániel Juhász2016-10-27
| | | | This commit modifies the liquid transforming procedure to light and unlight nodes instead of whole map blocks.
* Improved lightingDániel Juhász2016-10-27
| | | | | | | | | | | | | | 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
* Add MapSettingsManager and new mapgen setting script API functionskwolekr2016-07-03
| | | | | | | | | | | | | | | 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.
* Make node timers more efficientEkdohibs2016-06-11
|
* Implement a PostgreSQL backendLoic Blot2016-05-22
|
* DB::loadBlock copy removal & DB backend cleanupLoic Blot2016-05-17
| | | | | * 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
* Remove expensive copy of ContentFeaturesgregorycu2016-03-30
|
* Liquid flow: Prevent water spreading on ignoreparamat2016-01-20
|
* 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
* Rename macros with two leading underscoresShadowNinja2015-10-14
| | | | These names are reserved for the compiler/library implementations.
* Use warningstream for log messages with WARNINGShadowNinja2015-10-14
| | | | Remove DTIME macro and its uses, too
* Add emerge completion callback mechanismkwolekr2015-10-04
| | | | Major refactor of emerge.cpp and Map::init/finishBlockMake
* Define and use limit constants for Irrlicht fixed-width typeskwolekr2015-10-04
|
* Add /emergeblocks command and core.emerge_area() Lua APIkwolekr2015-09-23
|
* Fix segfault caused by a8e238ed06ee8285ed4459e9deda3117419837f6Perttu Ahola2015-08-13
|
* Add count based unload limit for mapblocksest312015-08-13
|
* Add map limit config optionrubenwardy2015-08-02
|
* Record MapBlock modification reasons as flags instead of stringskwolekr2015-05-17
| | | | | This improves performance of MapBlock::raiseModified by a factor of 6. Also, clean up mapblock.h a bit and inline small functions.
* Ensure that Map::findNodesWithMetadata() reports nodes strictly within the ↵kwolekr2015-05-08
| | | | node-granular area
* Add core.find_nodes_with_meta() script APIkwolekr2015-05-05
|
* 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
* Respect game mapgen flags and save world noise paramsngosang2015-03-07
|
* 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
* Don't start a server for map migrationShadowNinja2015-03-06
|
* Clean up database API and save the local map on an intervalShadowNinja2015-03-06
|
* ABMHandler and player_collisions use sequential read/write. Switch from ↵Loic Blot2015-03-04
| | | | | | std::list to std::vector * Also remove dead code Map::unloadUnusedData which is dead since a long time
* Fix unused (and so, broken) enable_rollback_recording. This option must be ↵Loic Blot2015-02-18
| | | | | | reloaded at server loop but loaded when server starts, for data consistency (not a hot load variable) ok @ShadowNinja
* Replace std::list by std::vector into ClientMap::updateDrawList, ↵Loic Blot2015-02-17
| | | | | | Map::timerUpdate and ServerMap::save(). This will speedup the loop reading into those functions
* Replace std::list by std::vector into timerUpdate callsLoic Blot2015-02-17
|
* Replace std::list by std::vector into ServerMap::listAllLoadableBlocks ↵Loic Blot2015-02-17
| | | | | | ServerMap::listAllLoadedBlocks and their database backends. This adds a speedup on database migration and /clearobjects command
* Fix missing map_meta.txt error when creating new worldskwolekr2015-01-27
| | | | A missing map_meta.txt should be treated simply as if there were a blank file.
* Fix all warnings and remove -Wno-unused-but-set cflagkwolekr2015-01-18
|
* Water fixesgregorycu2015-01-18
| | | | | | | 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
* Create empty default constructor for MapNodeCraig Robbins2015-01-18
|
* Add ability to delete MapBlocks from mapkwolekr2015-01-15
| | | | Also add a Lua API and chatcommand for this
* Change UniqueQueue to use a queue and a set.unknown2015-01-15
|
* Fix use of uninitialized dataCraig Robbins2015-01-14
|
* Attempt to fix occasional issue of uninitialized MapBlock datakwolekr2015-01-12
|
* Shorten ManualMapVoxelManipulator to MMVManipkwolekr2015-01-05
|
* Fix -Wtype-limits warnings and remove disabling of -Wtype-limitsCraig Robbins2014-12-29
|
* LuaVoxelManip: Remove blank allocatorkwolekr2014-12-29
|
* LuaVoxelManip: Add option to allocate blank datakwolekr2014-12-27
|