aboutsummaryrefslogtreecommitdiff
path: root/src/mapgen/mapgen_v7.cpp
Commit message (Collapse)AuthorAge
* Move Mapgen V7 river generation into the main generation loop (#10639)Paramat2020-11-20
| | | | | | | | | | All terrain generation now occurs in one loop, instead of rivers being carved afterwards in a separate loop. Fixes the removal of nodes added by mods in 'register on generated'. Avoids other problems and reduces the chance of future bugs. Mapchunk generation time is reduced. Also fixes a code mistake which resulted in river channel generation being disabled at floatland altitudes even when floatlands were disabled.
* Add 'ores' global mapgen flag (#10276)Paramat2020-09-03
|
* Add new Mapgen V7 floatland implementation (#9296)Paramat2020-05-14
| | | | | | | | | | | | Floatland structure is vertically-compressed 3D noise. Uses a lacunarity of 1.618 (the golden ratio) for high quality noise. Floatlands appear between user-settable Y limits, with smooth tapering at each limit. Simple user-settable density adjustment. Shadow propagation is disabled in and just below floatlands, no shadows are cast on the world surface. Can be reconfigured to create a solid upper world layer between the Y limits, lakes/seas can be optionally added to this.
* Give the Mapgen on each EmergeThread its own Biome/Ore/Deco/SchemManager copysfan52020-05-05
|
* Drop content_sao.{cpp,h}Loic Blot2020-04-11
| | | | | | | Move LuaEntitySAO to a new dedicated file Drop TestSAO (useless object) Drop the old static startup initialized SAO factory, which was pretty useless. This factory was using a std::map for 2 elements, now just use a simple condition owned by ServerEnvironment, which will be lightweight, that will also drop a one time useful test on each LuaEntitySAO creation. This should reduce server load on massive SAO creation
* Settings: Add get_flags API for mapgen flags (mg_flags, mgv6_spflags, ...) ↵SmallJoker2020-01-25
| | | | | | | | | | | (#9284) Unified flags handling in C++ and Lua Settings API -> Reading only, for now. Writing can be implemented later, if needed. API function to read the currently active flags -> was impossible from Lua Co-authored-by: Wuzzy <wuzzy2@mail.ru>
* Remove Mapgen V7 floatlands in preparation for new implementation (#9238)Paramat2020-01-04
| | | | Preserve the floatland flag of existing worlds, to be used again when the new implementation is added.
* Dungeons: Move duplicated y limit checks to generation functionparamat2019-11-23
|
* Randomwalk cave liquids: Remove deprecated 'lava depth' parameter (#9105)Paramat2019-11-18
| | | | | | | | | Low-disruption first step towards removing the hardcoded cave liquid code. Since MT 5.0.0 cave liquids can be defined and located by biome definitions instead. In games that do not yet use biome definitions to define and locate cave liquids (MTGame does), lava will now appear below y = water_level - 256 instead of below 'lava depth' (usually y = -256). Therefore no change in most mapgens if using the default 'lava depth'.
* Randomwalk caves: Add parameters for number, proportion flooded. Allow small ↵Paramat2019-11-08
| | | | | | | | | | | | | | caves (#8928) Add mapgen parameters to set the range of the random number of randomwalk caves per mapchunk, and to set the proportion that are flooded with liquids. Default values are, for now, unchanged from the previous hardcoded values. Add parameters to allow small randomwalk caves Disabled by default for now as they have never been present in the non-mgv6 mapgens.
* Dungeons: Settable density noise, move number calculation to mapgens (#8473)Paramat2019-06-01
| | | | | | | | | | | | Add user-settable noise parameters for dungeon density to each mapgen, except V6 which hardcodes this noise parameter. Move the calculation of number of dungeons generated in a mapchunk out of dungeongen.cpp and into mapgen code, to allow mapgens to generate any desired number of dungeons in a mapchunk, instead of being forced to have number of dungeons determined by a density noise. This is more flexible and allows mapgens to use dungeon generation to create custom structures, such as occasional mega-dungeons.
* mapgen: drop mapgen id from child mapgens.Loïc Blot2019-03-31
| | | | | | This id must be owned by the child mapgen and never be set to a misc value by a developer Also use nullptr in some places
* Change mapgen order to ores > dungeons > decorations (#7656)Paramat2018-08-20
| | | | | | | | | | | Previously dungeons > decorations > ores. Decorations depend on the node they are placed on, and ore types are increasingly able to place large continuous volumes of nodes, such as strata. Decorations are increasingly being used underground. The new order avoids a node being changed by ore generation after a decoration has been placed on it. The new order also avoids ores appearing in the walls of a dungeon if the wall nodes match the local stone node.
* Mapgen flags: Add 'biomes' global mapgen flag (#7355)Paramat2018-06-08
| | | | | | | | | Previously the only way to disable biomes was to 'clear' the registered biomes in a mod, but this method causes large amounts of unnecessary processing: 1. Calculation of 4 2D noises. 2. Looping through all nodes of a mapchunk replacing nodes with identical nodes. The new flag disables those operations.
* Mgv7: Avoid rivergen removing mod-placed nodes when overgenerating (#7388)Paramat2018-05-31
| | | | | Only allow river generation to replace c_stone. This also acts as an optimisation by being placed before canyon shape calculation.
* Mgv7: Code cleanup (#7299)Paramat2018-05-07
|
* Mapgen caves: Re-order generation to fix cavern bugParamat2018-04-29
| | | | | | | Previously, caverns confused tunnel generation causing biome top and filler nodes to appear in caverns. Split 'generateCaves()' into 2 functions to separate tunnel and large randomwalk cave generation. In each mapgen re-order cave generation to generate tunnels before caverns.
* Biome API / dungeons: Add biome-defined dungeon nodesParamat2018-04-07
| | | | | | | | | | Add new biome fields 'node_dungeon', 'node_dungeon_alt', 'node_dungeon_stair'. If 'node_dungeon' is not defined dungeons fall back to classic behaviour. Remove messy and imprecise dungeon material code from 'generateBiomes()'. Code deciding dungeon materials is now in 'generateDungeons()' and uses the biome at mapchunk centre for more precision. Remove hardcoded 'MG_STONE' types as long intended.
* Fix various clang-tidy reported performance-type-promotion-in-math-fnLoïc Blot2018-04-03
|
* Fix many issues reported by clang-tidy (#7189)Loïc Blot2018-04-02
| | | | | | | | | | | * Fix many issues reported by clang-tidy We have many issues in code related to some performance to float <-> double. Clang-tidy reported it in performance-type-promotion-in-math-fn I fixed many of them. It's not ready for a promote to blocking Also fix some value which should be const-ref
* Mapgen: Remove unused mgv7 code and some unused biometypesParamat2018-03-26
|
* VoxelArea: add_{x,y,z,p} must be staticLoic Blot2018-03-09
| | | | | Fix some documentations issues Use getNodeNoCheck(v3s16, ...) in some cases instead of getNodeNoCheck(x, y, z, ...)
* Dungeons: Add Y limits in all mapgensparamat2018-02-20
| | | | Preserve the upper limit used in mgvalleys.
* Mapgen folder: Update and improve copyright information of filesparamat2018-01-15
|
* Mgv7 floatlands: Add exponent parameterparamat2018-01-03
| | | | | Allows more control over shape of floatland mountain terrain. Terrain shape is unchanged.
* Move files to subdirectories (#6599)Vitaliy2017-11-08
* Move files around