summaryrefslogtreecommitdiff
path: root/src/mapgen_v5.cpp
AgeCommit message (Collapse)Author
2017-11-08Move files to subdirectories (#6599)Vitaliy
* Move files around
2017-09-17Biome API: Revert biomes, decos, ores being relative to water levelparamat
Feature is unnecessary and would greatly complicate future development, it would also make 'get biome at pos' extremely complex. Mgv7: Revert option to repeat surface biomes in floatlands, which depended on the above.
2017-09-03Use member initialization list instead of the constructor's body (#6371)Dharkael
* Use member initialization list instead of the constructor's body
2017-08-18Modernize various files (src/m*) (#6267)Loïc Blot
* Modernize various files (src/m*) * range-based for loops * code style * C++ headers instead of C headers * Default operators * empty function Thanks to clang-tidy
2017-08-12Mgv5: Make spawn position search more reliableparamat
2017-07-30Dungeons: Use biome 'node_stone' if normal stone types not detectedparamat
Construct dungeons from the node defined as biome 'node_stone' if 'mapgen_stone', 'mapgen_desert_stone' and 'mapgen_sandstone' are not detected. Feature long-intended by kwolekr/hmmmm and present in code as a TODO.
2017-07-11Biomes/decorations/ores: Make relative to 'water_level' settingparamat
Add 'biome_zero_level' argument to 'generateBiomes()', 'deco_zero_level' argument to 'placeAllDecos()' and 'ore_zero_level' to 'placeAllOres()' to allow mapgens to vertically shift the registered biomes, decorations and ores per-mapchunk. Will also allow many realm possibilities in future mapgens.
2017-06-30Mapgen: Remove unnecessary 'this->' from constructors (#6069)Paramat
2017-06-22CavesRandomWalk: Make 'lava_depth' a mapgen parameterparamat
As with 'large_cave_depth', lava depth was previously a fixed y value and therefore incompatible with the ability to shift terrain vertically. Add 'lava_depth' mapgen parameter to mgflat, mgfractal, mgv5, mgv7.
2017-06-21Mgv5/v7/fractal: Add 'large_cave_depth' parameter to replace fixed valueparamat
The value cannot be fixed because we can shift terrain vertically. This also makes these mapgens consistent with mgflat and mgvalleys which have 'large_cave_depth' parameters.
2017-06-17Cpp11 initializers 2 (#5999)Loïc Blot
* C++11 patchset 10: continue cleanup on constructors * Drop obsolete bool MainMenuData::enable_public (setting is called with cURL in server loop) * More classes cleanup * More classes cleanup + change NULL tests to boolean tests
2017-05-26Mapgen files: Update and correct copyright creditsparamat
2017-05-16Caverns: Remove unnecessary liquid excavationparamat
Also disable CavesRandomWalk at a safer distance from caverns. Excavating liquids in cavern code is unnecessary as in practice we are already successfully disabling the generation of liquid caves that could intersect with caverns and cause excessive amounts of spreading liquids in caverns. However to be safer this commit now disables liquid caves at a larger distance from caverns, to compensate for liquid caves being able to generate up to a mapblock beyond a mapchunk border. Not excavating liquids in cavern code also allows a feature i am working on in experimental new core mapgens, but also allows for more flexibility in future.
2017-04-05Mapgen: Remove '#include treegen.h' from non-mgv6 mapgensparamat
Only mgv6 uses the tree functions from treegen.cpp.
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.
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-05Mapgen: Optimize biomemap creation by combining with generateBiomeskwolekr
2016-05-27Mapgen: Combine dungeon generation codekwolekr
2016-05-27Mapgen: Deduplicate common constructor codekwolekr
2016-05-27Mapgen: Remove calculateNoise from most mapgenskwolekr
This commit moves noise calculation to the functions where the noise is actually required, increasing the separation of concerns and level of interdependency for each mapgen method. Valleys Mapgen is left unmodified.
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-04-28Mapgen: Make 3D noise tunnels' width settableparamat
Correct parameter names mg_valleys to mgvalleys Remove biome NoiseParams from MapgenValleysParams Improve format of parameter code
2016-04-12Mgv5: Optimise tunnels, add biome material in entrancesparamat
Place biome top node on tunnel entrance floor Instead of doing nothing at node_max.Y + 1 use 1-down overgeneration for tunnel generation and noisemaps
2016-03-14Mapgen: Fix light in tunnels at mapchunk bordersparamat
Don't excavate the overgenerated stone at node_max.Y + 1, this creates a 'roof' over the tunnel, preventing light in tunnels at mapchunk borders when generating mapchunks upwards.
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-02-02Mgv5/v7/flat/fractal: Move tunnel noise calculation into generateCavesparamat
Tunnel 3D noises are only calculated when solid terrain is present in mapchunk, avoiding large amounts of unnecessary calculations Change 'int' to 's16' in calculateNoise Change 'i' to 'vi' for voxelmanip indexes for consistency Keep 'u32 index3d' local to a smaller part of tunnel code Mgv7: Don't call CaveV7 if no solid terrain in mapchunk Give 'open' bool a more descriptive name
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-02Mgv5/v7/flat/fractal: More large pseudorandom cavesparamat
Mgv7/flat/fractal: Reduce tunnel noise spreads to 96
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-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-05Mgv5: getGroundLevelAtPoint searches a larger rangeparamat
2015-10-04Define and use limit constants for Irrlicht fixed-width typeskwolekr
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-06-27Mgv5/mgv7 caves: Remove sand found in underground tunnelsparamat
Add missing check for max_stone_y to mgv5 cavegen Tunnels now carve through sand below water_level
2015-06-20Mapgen objects: Enable heatmap and humidmap for all biome api mapgensparamat
2015-06-18Biome API: Add noise defined biome blendparamat
2015-06-15Biome API: Enable biome generation to lower world limitparamat
Decorations: Remove lower limit of water level for placement
2015-06-03Mgv5/mgv7: Trigger biome recalculation at underwater surfacesparamat
2015-05-23Mgv5/v7: Fix generateBiomes biome recalculation logic Biomegen down to y = ↵paramat
-192 for mgv5 deep oceans. Improve code
2015-05-17Mapgen v5/v7: Detect sandstone, enable sandstone brick dungeonsparamat
2015-05-12Mapgen v5/6/7: Cleanup node resolver and aliasesparamat
2015-04-16Mgv5: Fix above/below ground spawn when water level is alteredparamat
2015-04-16Mgv5/v7: Add check for water for deciding biome node stabilityparamat
2015-04-07Cavegen: Remove now unnecessary checks for water, lava, iceparamat
Remove large cave checks for air Mgv5/mgv7:Add is_ground_content checks to 3d noise tunnels More large caves Shorten lines
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