aboutsummaryrefslogtreecommitdiff
path: root/src/mapgen.h
AgeCommit message (Collapse)Author
2017-04-04MapgenBasic: Add lava source as commonly used content (#5512)Paramat
Future mapgens are likely to use this for magma and volcanos. Remove the getting of lava source content id in mgvalleys.
2017-04-03Cavegen/Mgv5/Mgv7: Add optional giant cavernsparamat
Add to MapgenBasic for use by multiple mapgens. Add to mgv5 and mgv7, enabled by default. Similar to mgvalleys caverns but half the scale. Parameters for upper y limit, distance caverns taper to full size, and noise threshold (full cavern size). As with mgvalleys caverns are generated first and classic caves are disabled in any mapchunk containing a cavern, to avoid excessive spreading volumes of liquids. This also avoids floating blobs of liquid where a large classic cave has overgenerated out into a neighbouring previously-generated mapchunk.
2017-03-27Map generation limit: Make per-worldparamat
The setting limits map generation but affects nothing else. Add 'mapgen_limit' to global mapgen parameters. Move 'blockpos_over_mapgen_limit()' to the only place it is called from: map.cpp. Allow teleportation to any part of the world even if over the set mapgen limit. Simplify the reading of this limit in mgvalleys. Remove the 'map_generation_limit' setting.
2017-03-05Dungeons: Use 'block' instead of 'brick' for nodebox stairsparamat
Affects only sandstone dungeons. Nodebox stairs made from 'sandstone_block' look better because every step is undivided.
2017-01-26Dungeons: Add nodebox stairs to desert and sandstone dungeonsparamat
Desert and sandstone dungeons have 2 node wide corridors. Previously, nodebox stairs were disabled because dungeon generation code did not support nodebox stairs wider than 1 node, now it does. Add 'stair desert stone' content id to MappgenBasic. Requires 'mapgen stair desert stone' to be added to Minetest Game.
2016-12-12Mapgen: Make mgv7 the default mapgenparamat
2016-08-04Mapgen: Remove unused 'flat' and 'trees' flags from mg_flagsparamat
When the 'flat' and 'trees' flags were moved into mgv6_spflags they were left in mg_flags in an attempt to support old mgv6 worlds. However their appearence in mg_flags causes confusion, also, later, old-world support was found to be broken for mgv6 worlds with 'notrees'. This commit cleans up the mess and comes a month after a thread warning of the change, and explaining the required action, was posted in the news subforum. Only old mgv6 worlds with 'flat' or 'notrees' are affected, a small minority of worlds, the required action being correctly setting these flags in mgv6_spflags. Disable a section of the 'map settings manager' unit test which is to be changed as it is causing problems for pull requests.
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-07-03Mapgen: Refactor mapgen creation and managementkwolekr
- Move mapgen creation logic out of EmergeManager and into Mapgen - Internally represent mapgen type as an enum value, instead of a string - Remove the need for a MapgenFactory per mapgen
2016-06-04Mapgen: Performance improvement and fixes for updateLiquid (#4065)MillersMan
- Adds only ~100 nodes per chunk to trans_liquid with similar processing time - Adds liquid nodes themselves instead of potential solid nodes below them - CONTENT_IGNORE nodes are interpreted as if they continue their neighborhood - This allows liquid columns to span multiple chunks without being interrupted - NOTE: Expects an one-node border in generation chunk without liquid changes
2016-06-04Biomes: Define and use biome_t for biome IDskwolekr
2016-06-04Change internal type for seeds to s32kwolekr
This fixes value truncation (and therefore incompatibility) on platforms with an LP32 data model, such as VAX or MS-DOS.
2016-05-27Mapgen: Combine dungeon generation codekwolekr
2016-05-27Mapgen: Deduplicate common constructor codekwolekr
2016-05-27Cavegen: Move V5-style caves to CavesNoiseIntersectionkwolekr
2016-05-27Fix MgStoneType and BiomeType enum nameskwolekr
2016-05-27Mapgen: Combine generateBiomes, dustTopNodes, and generateCaveskwolekr
This commit condenses the above methods into a single implementation used by V7, V5, Flat, Fractal, and Valleys mapgens and introduces MapgenBasic.
2016-05-27Move biome calculation to BiomeGenkwolekr
BiomeGen defines an interface that, given a set of BiomeParams, computes biomes for a given area using the algorithm implemented by that specific BiomeGen. This abstracts away the old system where each mapgen supplied the noises required for biome generation.
2016-02-09FindSpawnPos: Let mapgens decide what spawn altitude is suitableparamat
To avoid spawn search failing in new specialised mapgens Increase spawn search range to 4000 nodes Add getSpawnLevelAtPoint() functions to EmergeManager, class Mapgen and all mapgens Remove getGroundLevelAtPoint() functions from all mapgens except mgv6 (possibly to be re-added later in the correct form to return actual ground level) Make mgvalleys flag names consistent with other mapgens Remove now unused 'vertical spawn range' setting
2015-12-07Mapgen: Add propagate_shadow bool to calcLightingparamat
To terminate unwanted shadows from floatlands or realms above Also add to LuaVoxelManip calc_lighting for use in mapgen mods Remove the 2 argument calcLighting, mapgens now use the 5 argument form to specify the volumes for propagateSunlight and spreadLight In mgsinglenode replace calcLighting with setLighting and clean-up use of tabs and spaces
2015-11-21Mapgen: Add global 'decorations' flagparamat
Flag is set by default in MapgenParams The global 'trees' flag remains but is now undocumented and unset by default in MapgenParams Add mgv6_spflag 'trees' set by default in defaultsettings.cpp to affect new worlds only This is automatically backwards compatible for existing worlds
2015-10-27Add DISABLE_CLASS_COPY macro (and use it)kwolekr
Use this macro to disallow copying of an object using the assignment operator or copy constructor. This catches otherwise silent-but-deadly mistakes such as "ServerMap map = env->getMap();" at compile time. If so desired, it is still possible to copy a class, but it now requires an explicit call to memcpy or std::copy.
2015-10-23Decoration API: Add flag for placement on liquid surfaceparamat
Add findLiquidSurface() function to mapgen.cpp Update lua_api.txt
2015-09-07Mgv5/mgv7 biomes: Reduce heat and humidity noise spreads to former value of 750paramat
2015-08-16Remove unused functions.onkrot
2015-06-30Biome API: Increase heat and humidity noise spreads to 1000paramat
2015-06-20Mapgen objects: Enable heatmap and humidmap for all biome api mapgensparamat
2015-06-18Biome API: Add noise defined biome blendparamat
2015-05-24Biome API, mgv7: Increase heat/humidity spreads. Improve mgv7 noise parametersparamat
2015-05-18Split ObjDef/ObjDefManager out to objdef.cppkwolekr
2015-05-17Mapgen v5/v7: Detect sandstone, enable sandstone brick dungeonsparamat
2015-05-03ObjDefManager: Set replacement object's handle info after calling set()kwolekr
Make gamedef optional when constructing an ObjDefManager Add note about object ownership
2015-04-16Biomes: Remove referenced biomes from Decorations on clearkwolekr
2015-03-31ObjDefManager, Mapgen SAPI: Huge refactoringkwolekr
- General code cleanup - Unified object creation and loading - Specifying objects in APIs is now orthogonal (i.e. anything can take an ID, name string, or the raw table definition (and automatically registers if present
2015-03-31GenElementManager: Pass opaque handles to Lua and rename to ObjDefManagerkwolekr
Add core.clear_registered_schematics() and refactor schematics somewhat
2015-03-23Add core.register_schematic() and cache schematics on usekwolekr
2015-03-20Revert "Fix issue #2441: crash on respawn, since a conversion std::list to ↵kwolekr
std::vector on Environment.cpp" This reverts parts of commit 9749d9fee6db99da1ab861dc04ec63ef973db3e0, which breaks node resolver list clearing
2015-03-10Silence Clang warningShadowNinja
2015-03-08Heightmaps: Fix uninitialised values in mgv5/mgv6. findGroundLevel: Return ↵paramat
-MAP_GENERATION_LIMIT if surface not found
2015-03-07Respect game mapgen flags and save world noise paramsngosang
2015-03-06Fix mapgen using unitialised height map valuesCraig Robbins
2015-03-05Fix issue #2441: crash on respawn, since a conversion std::list to ↵Loic Blot
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
2015-01-05Shorten ManualMapVoxelManipulator to MMVManipkwolekr
2015-01-05Optionally specify propagateSunlight area in calcLightingkwolekr
This fixes the Mapgen V5 calcLighting segfault
2015-01-04Lighting: Fix nearly all issueskwolekr
The cause of a single light source seemingly being lit without spread was due to its creation in the +Y mapblock boundary layer during map generation, which was ignored as the overtop. This overtop explicitly needs to be omitted during sunlight propagation, however. To accomplish this, Mapgen::calcLighting() was split into separate functions taking separate parameters. Additionally, do not diminish light too early during spread. This fixes the output inconsistency between Map::updateLighting and Mapgen::calcLighting.
2014-12-29Mapgen: Use getBlockSeed2() for blockseeds (much better uniformity)kwolekr
2014-12-27Redefine NodeResolver interface and replace with callback mechanismkwolekr
2014-12-12Add minetest.clear_registered_decorations() and clear_registered_ores()kwolekr
2014-12-10Biome API: Reduce heat and humidity persistences to 0.5paramat
2014-12-09Biomes: Make biome heat and humidity noise parameters user-configurablekwolekr