aboutsummaryrefslogtreecommitdiff
path: root/src/mapgen_v6.cpp
AgeCommit message (Collapse)Author
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-06-17Dungeons: Generalise use, add capabilities, various modificationsparamat
- Generalise node names to c_wall and c_alt_wall - Remove 'mossratio' and instead disable alt_wall loop if c_alt_wall == CONTENT_IGNORE - Use one generalised 3D noise for alternative wall nodes and in mgv6 create moss distribution similar to the previous - Rename rarity noise to density noise and enable the option of multiple dungeons per chunk determined by the value. Recreate previous distribution - Add parameters for min and max rooms per dungeon - Add dungeon y limits - Integrate river water properly Generalisation is needed now that we have sandstone and desert stone dungeons by default and can choose any node for alternative structure. The current code is based around cobble dungeons with mossycobble alternative nodes, the 2 noises controlling the alternative nodes are based on wetness. Enabling multiple dungeons per chunk with definable number of rooms allows the option of very dense and complex underground structures that could interconnect to create megastructures. Y limits are added to be consistent with other mapgen elements, and enable locaton of dungeon or megastructure realms as part of our 'stacked realms' philosophy.
2016-05-27Dungeongen: Remove dependency on Mapgenkwolekr
2016-05-27Cavegen: Remove CavesV6 dependency on Mapgenkwolekr
2016-05-27Cavegen: Rename CaveV6 to CavesV6kwolekr
- Add comment explaining why it exists - Remove unused 'flooded' variable - Rename shadowed variable - Fix some code style
2016-05-10Mapgen V6: Synchronize spflags with defaultsettingskwolekr
This fixes an issue where trees are omitted from Mapgen V6 maps on configurations that explicitly defined the mgv6_spflags setting.
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
2016-01-11Mapgen: Various fixes and improvementsparamat
Lua_api.txt: Document 'minetest.registered_biomes' Minimal: Remove 'mapgen_air' alias Cavegen: Add fallback node for 'mapgen_ice' Dungeongen: Add fallback node for 'mapgen_river_water_source' Mgv5: Remove unnecessary '#include util/directiontables.h' Add missing 'this->'s in makeChunk() Mgv6: Edit empty line formatting Remove leading spaces in makeChunk() Add missing spaces after 'for' and 'if' Mgv7: Edit empty line formatting
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-11-13Mgv6: Move global mapgen flag 'flat' into mgv6 spflagsparamat
Add mgv6 spflag 'flat' Global flag is kept for backwards compatibility but is now undocumented
2015-10-09Mapgen: Use mapgen-specific names for constants in headersparamat
Update copyright years in all mapgens Add myself to copyright notices in mgv5 and mgv7
2015-10-04Define and use limit constants for Irrlicht fixed-width typeskwolekr
2015-09-19Various style cleanups + unused code removalest31
-> Don't pass pointer to whole IGameDef to NodeMetadata constructors and deserializers, but only to IItemDefManager, which is needed -> Remove the unused content_mapnode_get_new_name() method -> Fix style for MapBlock::deSerialize and MapBlock::deSerialize_pre22, improving accuracy of error messages a bit -> Fix style at other serialisation methods too -> Improve accuracy of some comments
2015-09-19Mgv5/6/7: Re-add #include profiler.h as commented-out optionparamat
2015-08-02Add map limit config optionrubenwardy
2015-07-21Remove profiler.h include where it's not needed. Remove some unreachable and ↵Loic Blot
very old code
2015-07-13Mgv6/treegen: (Re)Add fallback nodes for compatibility with subgamesparamat
2015-06-18Mgv6: Don't create air gap in tundra at y = 48 in custom high terrainparamat
2015-05-26Mgv6: Enable snowbiomes by default. Double biome noise spread. 3 octaves, ↵paramat
0.5 persistence for humidity
2015-05-12Mapgen v5/6/7: Cleanup node resolver and aliasesparamat
2015-04-12Mgv6: Fix taiga, allow pine tree spawning on snowblocksparamat
2015-04-12Mgv6: Add optional snow biomesparamat
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-23Mgv6: Use heightmap in placeTreesAndJungleGrass()paramat
2015-03-18Mgv6: Remove addDirtGravelBlobs, replaced by blob ore in Minetest Gameparamat
Desert stone above y = -32 not water_level Remove unused generateExperimental()
2015-03-11Mgv6: Fix uninitialised heightmap used by cavegenparamat
2015-03-10Ensure that heightmap is initialized before useCraig Robbins
Without this, cavegen will use values in the heightmap before they are initialized.
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-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-06Fix mapgen using unitialised height map valuesCraig Robbins
2015-03-05Fix memory leak in MapgenV6Craig Robbins
2015-03-02Mgv6: Add heightmap. Do not make large caves that are entirely above groundparamat
2015-01-18Fix all warnings and remove -Wno-unused-but-set cflagkwolekr
2015-01-07Mapgen V6: Re-enable liquid flowingkwolekr
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.
2015-01-01MgV5/6/7: Generate dungeons above water levelparamat
Use/add stone_surface_max_y to speed-optimise/guide dungeon generation MgV7: Don't let mountain terrain chop dungeons at mapchunk borders Make mountain terrain update stone_surface_max_y for caves in mountains
2014-12-29Fix some lingering code style issueskwolekr
2014-12-12Mapgens: Rename m_emerge to prevent name collisionskwolekr
2014-12-11Clean up Noise macroskwolekr
2014-12-10Noise: Automatically transform noise maps if neededkwolekr
2014-12-10Noise: Create a deep copy of NoiseParamskwolekr
2014-12-07Add flags and lacunarity as new noise parameterskwolekr
Add 'absolute value' option to noise map functions Extend persistence modulation to 3D noise Extend 'eased' option to noise2d_perlin* functions Some noise.cpp formatting fixups
2014-12-06Rewrite generate notification mechanismkwolekr
Add support for notify-on-decoration Clean up mapgen constructors Clean up mapgen.cpp code style somewhat Remove trailing whitespace from some files
2014-11-14Fix warnings and other misc. minor changeskwolekr
2014-11-12Add Generator Element Management frameworkkwolekr
Add BiomeManager, OreManager, DecorationManager, and SchematicManager
2014-11-01Split up mapgen.cppkwolekr
2014-10-30mapgen: Resolve nodes in ctor rather than makeChunkkwolekr