summaryrefslogtreecommitdiff
path: root/src/mapgen_v6.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-20Mgv6: Remove incorrectly defined and unused 'volume nodes'paramat
2017-08-19Code modernization: src/m* (part 2)Loic Blot
* empty function * default constructor/destructor * remove unused Map::emergeSector(a,b) * for range-based loops * migrate a dirs[7] table to direction tables * remove various old unused function
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-07-26VoxelManip cleanups (const ref, const move) + function removal (#6169)Loïc Blot
* VoxelManip cleanups (const ref, const move) permitting to improve a little bit performance * VoxelArea: precalculate extent (performance enhancement) This permits to reduce extend high cost to zero and drop many v3s16 object creation/removal to calculate extent It rebalance the client thread update to updateFastFaceRow instead of MapBlockMesh generation This will also benefits to mapgen
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-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-06-16Mgv6 mudflow: Also check for 'ignore' nodesparamat
Previously, when removing decorations we searched upwards and removed until we found air or water. However, the node above the decoration can be 'ignore' if a stacked decoration extends into the volume above the mapchunk. The result could be a problematic column of air placed in the volume of 'ignore'. The unnecessary placing of air also slows the function. Add a check for 'ignore' nodes when removing decorations.
2017-06-15Mgv6 mudflow: Avoid partially removed stacked decorationsparamat
Recently we started to remove decorations if the dirt below was flowed away, but this did not check for stacked decorations, causing them to have only their lowest node removed. Also, placed mud could partially bury stacked decorations. Remove 'old_is_water' bool which on testing is never true. Add new function 'moveMud()' to reduce indentation. Remove stacked decoration nodes above a removed decoration. Remove stacked decorations partially buried in placed mud.
2017-06-04Mapgen v6: Use snow blocks in tundra and remove them from taiga (#5827)Casimir
* Mapgen v6: Use snow blocks in tundra and remove them from taiga * Use snowblocks in tundra above dirt with snow
2017-05-26Mapgen files: Update and correct copyright creditsparamat
2017-05-25Mgv6 mudflow: Remove decoration if 'dirt with grass' below flows away (#5798)Paramat
Mudflow of a neighbouring mapchunk extends into a mapchunk's edge, and could remove 'dirt with grass' from under a decoration, creating unsupported decorations. Remove any decoration above if a 'dirt with grass' node is removed by mudflow.
2017-02-26Dungeongen: Add and improve parametersparamat
Add: Bool for 'only_in_ground'. Min and max corridor length. Min and max room size with X, Y, Z components. Min and max large room size with X, Y, Z components. 'only_in_ground = false' allows core mapgens to create structures in air and water using dungeongen. Corridor length parameters replace a fixed random range. Room size parameters replace the former system where one parameter 'roomsize' was added to fixed random ranges. All parameters are set for no change to current dungeon behaviour. Remove some now-redundant and long-unused code.
2017-02-04Mgv6: Add fallback node for gravelparamat
Gravel now falls back to stone. Gravel is not a particularly fundamental node, allowing it to fall back to stone frees up subgames from having to include a gravel node. Non-blob-ore gravel is only present in mgv6 as extremely rare 'gravel biomes'.
2017-02-04Mgv6: Add stairs to desert stone dungeonsparamat
As with the other mapgens, now that wide stairs in dungeons are possible we can now finally add stairs to desert stone dungeons. Re-order some lines.
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