[Mod] River / mountain range mapgen [0.7.2] [watershed]
Posted: Wed Feb 19, 2014 01:27
Download, rename to 'watershed' https://github.com/paramat/watershed/archive/master.zip
Browse code https://github.com/paramat/watershed
For Minetest 0.4.13 and later
Depends default stairs bucket
Licenses: Source code LGPL (2.1). Textures CC BY-SA (3.0)
A singlenode realm with sea level at y = 1, an auto-spawn function spawns the player on low land.
My past mapgens have applied a river pattern that is independant of the terrain it cuts through.
In watershed the entire terrain is generated by a method of using 3D perlin noise (using the absolute value of 3D noise) that creates a landscape of long winding valleys, water is added to the base of the valleys to form the rivers, the rivers therefore look naturally placed as if they have eroded the valleys into the landscape.
Features
A use of 3D noise that creates long winding river valleys, however this alone would have rivers all on one level, so this terrain is then placed on top of the similar use of noise but upside-down and on a larger scale that creates a web of winding mountain ranges / ridges that surround large lowland areas and lakes. All this is placed on top of a very large scale height variation that creates alternating contients and archipelagos, the island chains being the tops of the submerged mountain ranges.
Rivers and tributaries become narrower and shallower with altitude. They merge with oceans and lakes at sea level, forming watershed systems.
The terrain is a blend between rough and smooth perlin noises, roughest at the mountain ranges and smoothest in the lowlands between.
Uses an arctan function density gradient to create occasional floatlands throughout the atmosphere, and occasional caves underground.
A highly connective web of underground fissures.
Stability table system only places fine materials if supported by a chosen minimum number of stone nodes below.
The mod's own 16x16 node pixel-clouds throughout the atmosphere.
Rare obsidian volcanos near the mountain ridges/island chains.
Inclined sandstone strata.
Ores are within networks within strata.
Lux ore has it's own strata layer, drops 8 lux crystals craftable with glass to lights.
9 3D biomes selected by 3D temperature and humidity noises:
Tundra (dry grass node with random dirt-with-snow and ice)
Snowy plains (snowblocks on dirt nodes)
Taiga (snowy pinetrees, snowblocks on dirt nodes)
Dry grassland (dry grass node)
Grassland (grass node)
Deciduous forest (grass node, appletrees, 5 grasses, flowers)
Desert (desert sand, cactus and dry shrub)
Savanna (dry grass node, golden grass and acacia trees)
Rainforest (grass node, dense jungletrees, junglegrass)
Beaches with dune grass on higher sands.
Papyrus on river banks in warmer biomes.
Saplings for all 4 tree types, grown by luavoxelmanip.
Chat command '/regen' regenerates the player's current chunk, requires 'server' or 'rollback' privs.
The 3D minimap mod
https://github.com/paramat/watershedmini
There is a unique node for each of the 9 biomes, any biome with trees has that tree's leaves as the map node.
The default zoom factor is 16 so this is a mapblock resolution map. The map matches watershed 0.5.0 so just multiply map X and Z co-ordinates by 16 to get the corresponding co-ordinates in watershed.
Soon i will place the map high above the clouds and spawn the player there, currently having the clouds visible looks wrong and is a problem if you want to fly up and get an overhead view of the map.
Crafting
type = "cooking",
output = "default:desert_stone",
recipe = "watershed:redcobble",
output = "watershed:light 8",
recipe = {
{"default:glass", "default:glass", "default:glass"},
{"default:glass", "watershed:luxcrystal", "default:glass"},
{"default:glass", "default:glass", "default:glass"},
output = "watershed:acaciawood 4",
recipe = {
{"watershed:acaciatree"},
output = "watershed:pinewood 4",
recipe = {
{"watershed:pinetree"},