aboutsummaryrefslogtreecommitdiff
path: root/src/cavegen.cpp
Commit message (Collapse)AuthorAge
* Cavegen: Fix variable typo that broke mgvalleys large cave distribution (#7249)Paramat2018-06-03
| | | | | | Fix elusive 5 year old bug that caused mgvalleys large caves to be flat and limited to mapchunk borders. Error was fixed 2 years ago in 'CavesV6' but not in 'CavesRandomWalk'.
* Caverns: Remove unnecessary liquid excavationparamat2017-05-16
| | | | | | | | | | | | | | | 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.
* Cavegen: Fix non-constant array initializer error for MSVCSmallJoker2017-04-07
|
* Cavegen/Mgv5/Mgv7: Add optional giant cavernsparamat2017-04-03
| | | | | | | | | | | | | | 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.
* Cavegen: Place correct biome surface in tunnel entrancesparamat2017-02-16
| | | | | | | | | | Previously in tunnel entrance floors only a single biome 'top' node was placed and 'filler' nodes were missing. Place 'top' and 'filler' nodes in tunnel entrance floors with depths defined by the biome. In tunnel entrances under rivers 'riverbed' nodes are placed to the biome-defined depth.
* Mgvalleys / cavegen: Place riverbed nodes under river waterparamat2016-07-21
| | | | | When a CavesNoiseIntersection tunnel intersects a river place biome 'riverbed' nodes in tunnel entrance instead of biome 'top' nodes.
* Change internal type for seeds to s32kwolekr2016-06-04
| | | | | This fixes value truncation (and therefore incompatibility) on platforms with an LP32 data model, such as VAX or MS-DOS.
* Disallow external linkage for default Cavegen NoiseParamskwolekr2016-05-27
|
* Cavegen: Move V5-style caves to CavesNoiseIntersectionkwolekr2016-05-27
|
* Cavegen: Minor misc. fixeskwolekr2016-05-27
| | | | | | | - Convert instances of numeric literal doubles to floats - Move dswitchint to a local variable now that being a member is unnecessary - Improve const correctness - Indentation fixes
* Fix undefined evaluation order when constructing random vectorskwolekr2016-05-27
| | | | | | | | | | | | | | MSVC and GCC evaluate parameters in right-to-left order, whereas Clang evaluates in left-to-right order, and of course, an optimization could leave the order of evaluation completely indeterminate. This commit fixes all instances of the error by explicitly assigning the results of expressions that use PseudoRandom::next() or range() to their respective vector components. The right-to-left evaluation behavior is preserved since Clang is much less commonly used to compile Minetest than GCC and MSVC combined, and would therefore cause the least harm.
* Cavegen: Re-add small caves to CavesRandomWalkkwolekr2016-05-27
|
* Cavegen: Remove CavesRandomWalk dependency on Mapgenkwolekr2016-05-27
|
* Cavegen: Merge instances of repetitive surface level-finding codekwolekr2016-05-27
|
* Cavegen: Remove CavesV6 dependency on Mapgenkwolekr2016-05-27
|
* Cavegen: Rename CaveV6 to CavesV6kwolekr2016-05-27
| | | | | | | - Add comment explaining why it exists - Remove unused 'flooded' variable - Rename shadowed variable - Fix some code style
* Cavegen: Merge CaveV5 and CaveV7 into CavesRandomWalkkwolekr2016-05-27
|
* Mapgen: Various fixes and improvementsparamat2016-01-11
| | | | | | | | | | | | | 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
* Cavegen: Make mgfractal use mgv5 cavegenparamat2015-11-09
| | | | | Remove CaveFractal Add a lava depth constant to CaveV5 to make it universal
* Fractal mapgen: Add seabed and large pseudorandom cavesparamat2015-10-07
|
* Cavegen V6: Make all caves consistent with 0.4.12 stableparamat2015-08-03
| | | | | | | When tunnels entirely above ground were avoided, the missing pseudorandom calls changed the allowed caves. Now, above ground tunnels are not placed while still running all previous pseudorandom calls.
* Cavegen: Mgv6: No small caves entirely above groundparamat2015-07-19
| | | | | Mgv5/mgv7: Remove 'should make cave hole' feature Remove ravine code
* Cavegen: Cleanup code. Define constant for MGV7_LAVA_DEPTHparamat2015-07-01
|
* Cavegen: Remove now unnecessary checks for water, lava, iceparamat2015-04-07
| | | | | | | Remove large cave checks for air Mgv5/mgv7:Add is_ground_content checks to 3d noise tunnels More large caves Shorten lines
* Cavegen, mgv5: Cleanup codeparamat2015-03-04
| | | | | Conf.example: Update mgv5 mapgen params Mgv7: Lava caves only below -256
* Mgv6: Add heightmap. Do not make large caves that are entirely above groundparamat2015-03-02
|
* Mgv5: Remove blobgen. Remove crumble and wetness noisesparamat2015-02-21
| | | | | | Add large pseudorandom caves below -256 De-link terrain level from water_level Cavegen: Mgv5 large cave code
* Cavegen: Fix copy & paste error (solves #2020)kwolekr2014-12-28
|
* Add flags and lacunarity as new noise parameterskwolekr2014-12-07
| | | | | | | 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
* Rewrite generate notification mechanismkwolekr2014-12-06
| | | | | | | Add support for notify-on-decoration Clean up mapgen constructors Clean up mapgen.cpp code style somewhat Remove trailing whitespace from some files
* Huge overhaul of the entire MapgenParams systemkwolekr2014-02-03
| | | | | | MapgenParams is no longer a polymorphic class, eliminating the need for messy and bug-prone reallocations. Separation between the common and mapgen-specific parameters is now strongly defined. Mapgen parameters objects are now properly encapsulated within the proper subsystems.
* Add map feature generation notify Lua APIkwolekr2013-12-14
|
* Cavegen: Fix possible out-of-bounds heightmap accesskwolekr2013-12-01
|
* Cavegen: Respect is_ground_content MapNode setting; fix some code formatting ↵kwolekr2013-11-29
| | | | issues
* Mapgen V7: Huge rewrite, also tweaks to cavegen et al.kwolekr2013-07-06
|
* Cavegen: Prevent caves from occuring above ground level, and superfluous ↵kwolekr2013-07-01
| | | | mixing of lava and water in caves
* Cavegen: fix division by 0 with abnormal max tunnel diameter sizeskwolekr2013-06-23
|
* Enhance caves for mgv7, add ravineskwolekr2013-04-27
|
* Class-ify caves & move to cavegen.cpp, fix cave regression, add caves to ↵kwolekr2013-04-21
Mapgen V7