aboutsummaryrefslogtreecommitdiff
path: root/src/mapgen_v7.cpp
AgeCommit message (Collapse)Author
2017-04-22Mgflat, Mgv7: Fix noise crash on world exit.paramat
Fix crash caused by destructor 'delete' on noise objects that are not created due to mapgen options. Crash was caused by commit 57eaf62c697cec91890d9cb28d10385d293d2d3f
2017-04-22Mgflat, Mgv7: Only create noise objects if neededparamat
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-12-13Mgv7: Change default cave width to 0.09sfan5
2016-12-01Mgv7 floatlands: Various improvementsparamat
Floatland base terrain underside was too thin, causing excessive water leakage through tunnels under lakes, now make it thicker. Floatland mountain terrain had a rim 1 node thick which made it bare stone, now make it 2 nodes thick to merge with the floatland base terrain rim and to have a layer of biome material. Make mountain terrain more exponentially shaped by altering the exponent. Remove unnecessary and potentially ugly MYMAX() applied to n_base_height.
2016-11-15Mgv7: Add optional floatlands, disabled by defaultparamat
2016-09-30Mgv7: Avoid mid-air spawn on disabled mountain terrain, optimise functionparamat
'getSpawnLevelAtPoint()' did not account for disabled mountains, it was possible to be spawned in mid-air where a mountain surface would have been. Avoid check for river area if rivers are disabled.
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-24Mgflat/fractal/v7/valleys: Denser 3D noise tunnelsparamat
Reduce spread from 96 to primes 61 and 67 (either side of 64) Prime spreads help to keep 3D noise periodic features unaligned 'cave width' 0.2 to preserve tunnel width Reduce octaves to 3 to improve network structure
2016-06-05Mapgen: Optimize biomemap creation by combining with generateBiomeskwolekr
2016-06-02Mgv7: Always carve river channels in mountain terrainparamat
Previously, rivers were sometimes blocked by vertical walls of mountain terrain due to river carving being disabled when base terrain height was below water_level - 16 Remove now unused base terrain heightmap created in generateTerrain()
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-27Mapgen V7: Remove now-unused ridge heightmapkwolekr
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-20Mgv7: Combine mountain terrain generation with base terrain generationparamat
Previous mountain terrain generation was by necessity placing stone in air, this was removing air from any overgenerated structures such as tunnels, dungeons and large caves Moving it into the base terrain generation loop ensures that only 'ignore' is replaced generateRidgeTerrain: only return if node_max.Y < water_level - 16 Previously, if water level was set a few nodes above a mapchunk border the river channel was only partially excavated
2016-04-12Mgv7, mgflat, mgfractal: Tunnel generation code optimisationparamat
2016-04-08Mapgen: Optimise cave noises and tunnel excavationparamat
Instead of doing nothing at node_max.Y + 1 use 1-down overgeneration for tunnel generation and noisemaps Move some old unused code in mgv7 to end of file
2016-03-30Mgv7: Decrease cliff steepnessparamat
2016-03-21Mgv7/flat/fractal: Stop tunnel-floor biome nodes being placed everywhereparamat
A bool for 'in or under tunnel' was missing 1-node-deep stone ledges were being replaced with biome surface material
2016-03-19Mgv7: Limit pseudorandom caves to surface mapchunk or belowparamat
To avoid bright caves at mapchunk borders when generating mapchunks upwards
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-14Mgv7/flat/fractal: Place biome top node on tunnel entrance floorparamat
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-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-21Mgv7: Use density noise + density gradient for mountain terrainparamat
Tune and optimise noise parameters
2015-07-21Remove profiler.h include where it's not needed. Remove some unreachable and ↵Loic Blot
very old code
2015-07-08Mgv7: Auto-set lowest mountain generation levelparamat
Lowest level of base terrain determines mountain generation in mapchunk Change some positional function arguments from int to s16
2015-07-04Mgv7: Lower base of mountain generation to -112 and define constantparamat
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-21Mgv7: Edit noise parameters. Fewer octaves, larger spreads.paramat
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-24Biome API, mgv7: Increase heat/humidity spreads. Improve mgv7 noise parametersparamat
2015-05-23Mgv5/v7: Fix generateBiomes biome recalculation logic Biomegen down to y = ↵paramat
-192 for mgv5 deep oceans. Improve code