forked from luanti-org/minetest_game
		
	Add biomes for mgv5 and mgv7
This commit is contained in:
		| @@ -2,7 +2,6 @@ | ||||
| -- Aliases for map generator outputs | ||||
| -- | ||||
|  | ||||
|  | ||||
| minetest.register_alias("mapgen_stone", "default:stone") | ||||
| minetest.register_alias("mapgen_dirt", "default:dirt") | ||||
| minetest.register_alias("mapgen_dirt_with_grass", "default:dirt_with_grass") | ||||
| @@ -19,6 +18,8 @@ minetest.register_alias("mapgen_snow", "default:snow") | ||||
| minetest.register_alias("mapgen_ice", "default:ice") | ||||
| minetest.register_alias("mapgen_sandstone", "default:sandstone") | ||||
|  | ||||
| -- Flora | ||||
|  | ||||
| minetest.register_alias("mapgen_tree", "default:tree") | ||||
| minetest.register_alias("mapgen_leaves", "default:leaves") | ||||
| minetest.register_alias("mapgen_apple", "default:apple") | ||||
| @@ -28,6 +29,8 @@ minetest.register_alias("mapgen_junglegrass", "default:junglegrass") | ||||
| minetest.register_alias("mapgen_pinetree", "default:pinetree") | ||||
| minetest.register_alias("mapgen_pine_needles", "default:pine_needles") | ||||
|  | ||||
| -- Dungeons | ||||
|  | ||||
| minetest.register_alias("mapgen_cobble", "default:cobble") | ||||
| minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble") | ||||
| minetest.register_alias("mapgen_mossycobble", "default:mossycobble") | ||||
| @@ -39,10 +42,13 @@ minetest.register_alias("mapgen_stair_sandstonebrick", "stairs:stair_sandstonebr | ||||
| -- Register ores | ||||
| -- | ||||
|  | ||||
|  | ||||
| -- All mapgens except singlenode | ||||
| -- Blob ore first to avoid other ores inside blobs | ||||
|  | ||||
| function default.register_ores() | ||||
|  | ||||
| 	-- Clay | ||||
|  | ||||
| 	minetest.register_ore({  | ||||
| 		ore_type         = "blob", | ||||
| 		ore              = "default:clay", | ||||
| @@ -62,6 +68,8 @@ function default.register_ores() | ||||
| 		}, | ||||
| 	}) | ||||
|  | ||||
| 	-- Sand | ||||
|  | ||||
| 	minetest.register_ore({  | ||||
| 		ore_type         = "blob", | ||||
| 		ore              = "default:sand", | ||||
| @@ -81,6 +89,8 @@ function default.register_ores() | ||||
| 		}, | ||||
| 	}) | ||||
|  | ||||
| 	-- Dirt | ||||
|  | ||||
| 	minetest.register_ore({ | ||||
| 		ore_type         = "blob", | ||||
| 		ore              = "default:dirt", | ||||
| @@ -100,6 +110,8 @@ function default.register_ores() | ||||
| 		}, | ||||
| 	}) | ||||
|  | ||||
| 	-- Gravel | ||||
|  | ||||
| 	minetest.register_ore({ | ||||
| 		ore_type         = "blob", | ||||
| 		ore              = "default:gravel", | ||||
| @@ -119,6 +131,8 @@ function default.register_ores() | ||||
| 		}, | ||||
| 	}) | ||||
|  | ||||
| 	-- Coal | ||||
|  | ||||
| 	minetest.register_ore({ | ||||
| 		ore_type       = "scatter", | ||||
| 		ore            = "default:stone_with_coal", | ||||
| @@ -141,6 +155,8 @@ function default.register_ores() | ||||
| 		y_max          = 0, | ||||
| 	}) | ||||
|  | ||||
| 	-- Iron | ||||
|  | ||||
| 	minetest.register_ore({ | ||||
| 		ore_type       = "scatter", | ||||
| 		ore            = "default:stone_with_iron", | ||||
| @@ -185,6 +201,8 @@ function default.register_ores() | ||||
| 		y_max          = -64, | ||||
| 	}) | ||||
|  | ||||
| 	--Mese | ||||
|  | ||||
| 	minetest.register_ore({ | ||||
| 		ore_type       = "scatter", | ||||
| 		ore            = "default:stone_with_mese", | ||||
| @@ -218,6 +236,8 @@ function default.register_ores() | ||||
| 		y_max          = -1024, | ||||
| 	}) | ||||
|  | ||||
| 	-- Gold | ||||
|  | ||||
| 	minetest.register_ore({ | ||||
| 		ore_type       = "scatter", | ||||
| 		ore            = "default:stone_with_gold", | ||||
| @@ -240,6 +260,8 @@ function default.register_ores() | ||||
| 		y_max          = -256, | ||||
| 	}) | ||||
|  | ||||
| 	-- Diamond | ||||
|  | ||||
| 	minetest.register_ore({ | ||||
| 		ore_type       = "scatter", | ||||
| 		ore            = "default:stone_with_diamond", | ||||
| @@ -262,6 +284,8 @@ function default.register_ores() | ||||
| 		y_max          = -256, | ||||
| 	}) | ||||
|  | ||||
| 	-- Copper | ||||
|  | ||||
| 	minetest.register_ore({ | ||||
| 		ore_type       = "scatter", | ||||
| 		ore            = "default:stone_with_copper", | ||||
| @@ -290,29 +314,68 @@ end | ||||
| -- Register biomes | ||||
| -- | ||||
|  | ||||
| -- All mapgens except mgv6 and singlenode | ||||
|  | ||||
| function default.register_biomes() | ||||
| 	minetest.clear_registered_biomes() | ||||
|  | ||||
| 	-- Permanent ice | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "default:grassland", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:dirt_with_grass", | ||||
| 		name = "glacier", | ||||
| 		node_dust = "default:snowblock", | ||||
| 		node_top = "default:snowblock", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:dirt", | ||||
| 		depth_filler = 1, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		node_filler = "default:snowblock", | ||||
| 		depth_filler = 3, | ||||
| 		node_stone = "default:ice", | ||||
| 		node_water_top = "default:ice", | ||||
| 		depth_water_top = 8, | ||||
| 		--node_water = "", | ||||
| 		y_min = 5, | ||||
| 		y_min = -6, | ||||
| 		y_max = 31000, | ||||
| 		heat_point = 50, | ||||
| 		heat_point = -5, | ||||
| 		humidity_point = 50, | ||||
| 	}) | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "default:grassland_ocean", | ||||
| 		name = "glacier_ocean", | ||||
| 		node_dust = "default:snowblock", | ||||
| 		node_top = "default:sand", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:sand", | ||||
| 		depth_filler = 2, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = -112, | ||||
| 		y_max = -7, | ||||
| 		heat_point = -5, | ||||
| 		humidity_point = 50, | ||||
| 	}) | ||||
|  | ||||
| 	-- Cold | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "tundra", | ||||
| 		node_dust = "default:snow", | ||||
| 		node_top = "default:dirt_with_snow", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:dirt", | ||||
| 		depth_filler = 0, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = 2, | ||||
| 		y_max = 31000, | ||||
| 		heat_point = 20, | ||||
| 		humidity_point = 30, | ||||
| 	}) | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "tundra_ocean", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:sand", | ||||
| 		depth_top = 1, | ||||
| @@ -322,8 +385,322 @@ function default.register_biomes() | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = -31000, | ||||
| 		y_min = -112, | ||||
| 		y_max = 1, | ||||
| 		heat_point = 20, | ||||
| 		humidity_point = 30, | ||||
| 	}) | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "taiga", | ||||
| 		node_dust = "default:snow", | ||||
| 		node_top = "default:snowblock", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:dirt", | ||||
| 		depth_filler = 2, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = 2, | ||||
| 		y_max = 31000, | ||||
| 		heat_point = 20, | ||||
| 		humidity_point = 70, | ||||
| 	}) | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "taiga_ocean", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:sand", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:sand", | ||||
| 		depth_filler = 2, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = -112, | ||||
| 		y_max = 1, | ||||
| 		heat_point = 20, | ||||
| 		humidity_point = 70, | ||||
| 	}) | ||||
|  | ||||
| 	-- Cool | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "stone_grassland", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:dirt_with_grass", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:dirt", | ||||
| 		depth_filler = 0, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = 6, | ||||
| 		y_max = 31000, | ||||
| 		heat_point = 45, | ||||
| 		humidity_point = 30, | ||||
| 	}) | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "stone_grassland_ocean", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:sand", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:sand", | ||||
| 		depth_filler = 2, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = -112, | ||||
| 		y_max = 5, | ||||
| 		heat_point = 45, | ||||
| 		humidity_point = 30, | ||||
| 	}) | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "coniferous_forest", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:dirt_with_grass", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:dirt", | ||||
| 		depth_filler = 2, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = 6, | ||||
| 		y_max = 31000, | ||||
| 		heat_point = 45, | ||||
| 		humidity_point = 70, | ||||
| 	}) | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "coniferous_forest_ocean", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:sand", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:sand", | ||||
| 		depth_filler = 2, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = -112, | ||||
| 		y_max = 5, | ||||
| 		heat_point = 45, | ||||
| 		humidity_point = 70, | ||||
| 	}) | ||||
|  | ||||
| 	-- Warm | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "sandstone_grassland", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:dirt_with_grass", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:dirt", | ||||
| 		depth_filler = 0, | ||||
| 		node_stone = "default:sandstone", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = 6, | ||||
| 		y_max = 31000, | ||||
| 		heat_point = 70, | ||||
| 		humidity_point = 30, | ||||
| 	}) | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "sandstone_grassland_ocean", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:sand", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:sand", | ||||
| 		depth_filler = 2, | ||||
| 		node_stone = "default:sandstone", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = -112, | ||||
| 		y_max = 5, | ||||
| 		heat_point = 70, | ||||
| 		humidity_point = 30, | ||||
| 	}) | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "deciduous_forest", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:dirt_with_grass", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:dirt", | ||||
| 		depth_filler = 2, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = 6, | ||||
| 		y_max = 31000, | ||||
| 		heat_point = 70, | ||||
| 		humidity_point = 70, | ||||
| 	}) | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "deciduous_forest_ocean", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:sand", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:sand", | ||||
| 		depth_filler = 2, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = -112, | ||||
| 		y_max = 5, | ||||
| 		heat_point = 70, | ||||
| 		humidity_point = 70, | ||||
| 	}) | ||||
|  | ||||
| 	-- Hot | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "desert", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:desert_sand", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:desert_sand", | ||||
| 		depth_filler = 1, | ||||
| 		node_stone = "default:desert_stone", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = 1, | ||||
| 		y_max = 31000, | ||||
| 		heat_point = 95, | ||||
| 		humidity_point = 10, | ||||
| 	}) | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "desert_ocean", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:sand", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:sand", | ||||
| 		depth_filler = 2, | ||||
| 		node_stone = "default:desert_stone", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = -112, | ||||
| 		y_max = 0, | ||||
| 		heat_point = 95, | ||||
| 		humidity_point = 10, | ||||
| 	}) | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "savanna", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:dirt_with_dry_grass", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:dirt", | ||||
| 		depth_filler = 1, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = 5, | ||||
| 		y_max = 31000, | ||||
| 		heat_point = 95, | ||||
| 		humidity_point = 50, | ||||
| 	}) | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "savanna_ocean", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:sand", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:sand", | ||||
| 		depth_filler = 2, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = -112, | ||||
| 		y_max = 4, | ||||
| 		heat_point = 95, | ||||
| 		humidity_point = 50, | ||||
| 	}) | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "rainforest", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:dirt_with_grass", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:dirt", | ||||
| 		depth_filler = 2, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = 1, | ||||
| 		y_max = 31000, | ||||
| 		heat_point = 95, | ||||
| 		humidity_point = 90, | ||||
| 	}) | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "rainforest_swamp", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:dirt", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:dirt", | ||||
| 		depth_filler = 2, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = 0, | ||||
| 		y_max = 0, | ||||
| 		heat_point = 95, | ||||
| 		humidity_point = 90, | ||||
| 	}) | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "rainforest_ocean", | ||||
| 		--node_dust = "", | ||||
| 		node_top = "default:sand", | ||||
| 		depth_top = 1, | ||||
| 		node_filler = "default:sand", | ||||
| 		depth_filler = 2, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = -112, | ||||
| 		y_max = -1, | ||||
| 		heat_point = 95, | ||||
| 		humidity_point = 90, | ||||
| 	}) | ||||
|  | ||||
| 	-- Underground | ||||
|  | ||||
| 	minetest.register_biome({ | ||||
| 		name = "underground", | ||||
| 		--node_dust = "", | ||||
| 		--node_top = "", | ||||
| 		depth_top = 0, | ||||
| 		--node_filler = "", | ||||
| 		depth_filler = -4, | ||||
| 		--node_stone = "", | ||||
| 		--node_water_top = "", | ||||
| 		--depth_water_top = , | ||||
| 		--node_water = "", | ||||
| 		y_min = -31000, | ||||
| 		y_max = -113, | ||||
| 		heat_point = 50, | ||||
| 		humidity_point = 50, | ||||
| 	}) | ||||
| @@ -331,11 +708,13 @@ end | ||||
|  | ||||
|  | ||||
| -- | ||||
| -- Register mgv6 decorations | ||||
| -- Register decorations | ||||
| -- | ||||
|  | ||||
| -- Mgv6 | ||||
|  | ||||
| function default.register_mgv6_decorations() | ||||
| 	minetest.clear_registered_decorations() | ||||
|  | ||||
| 	-- Papyrus | ||||
|  | ||||
| @@ -381,7 +760,7 @@ function default.register_mgv6_decorations() | ||||
| 	        height_max = 4, | ||||
| 	}) | ||||
|  | ||||
| 	-- Grasses | ||||
| 	-- Long grasses | ||||
|  | ||||
| 	for length = 1, 5 do | ||||
| 		minetest.register_decoration({ | ||||
| @@ -422,214 +801,245 @@ function default.register_mgv6_decorations() | ||||
| 	}) | ||||
| end | ||||
|  | ||||
| -- All mapgens except mgv6 and singlenode | ||||
|  | ||||
| -- | ||||
| -- Register decorations | ||||
| -- | ||||
| local function register_grass_decoration(offset, scale, length) | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:dirt_with_grass", "default:sand"}, | ||||
| 		sidelen = 16, | ||||
| 		noise_params = { | ||||
| 			offset = offset, | ||||
| 			scale = scale, | ||||
| 			spread = {x=200, y=200, z=200}, | ||||
| 			seed = 329, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.6 | ||||
| 		}, | ||||
| 		biomes = { | ||||
| 			"stone_grassland", "stone_grassland_ocean", | ||||
| 			"sandstone_grassland", "sandstone_grassland_ocean", | ||||
| 			"deciduous_forest", "deciduous_forest_ocean", | ||||
| 			"coniferous_forest", "coniferous_forest_ocean", | ||||
| 		}, | ||||
| 		y_min = 5, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "default:grass_"..length, | ||||
| 	}) | ||||
| end | ||||
|  | ||||
| local function register_dry_grass_decoration(length) | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:dirt_with_dry_grass"}, | ||||
| 		sidelen = 16, | ||||
| 		noise_params = { | ||||
| 			offset = 0.04, | ||||
| 			scale = 0.02, | ||||
| 			spread = {x=200, y=200, z=200}, | ||||
| 			seed = 329, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.6 | ||||
| 		}, | ||||
| 		biomes = {"savanna"}, | ||||
| 		y_min = 5, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "default:dry_grass_"..length, | ||||
| 	}) | ||||
| end | ||||
|  | ||||
| function default.register_decorations() | ||||
| 	minetest.clear_registered_decorations() | ||||
|  | ||||
| 	-- Flowers | ||||
| 	-- Apple tree | ||||
|  | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:dirt_with_grass"}, | ||||
| 		sidelen = 16, | ||||
| 		noise_params = { | ||||
| 			offset = -0.02, | ||||
| 			scale = 0.03, | ||||
| 			spread = {x = 200, y = 200, z = 200}, | ||||
| 			seed = 436, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.6 | ||||
| 		}, | ||||
| 		biomes = {"default:grassland"}, | ||||
| 		y_min = -31000, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "flowers:rose", | ||||
| 	}) | ||||
| 	 | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:dirt_with_grass"}, | ||||
| 		sidelen = 16, | ||||
| 		noise_params = { | ||||
| 			offset = -0.02, | ||||
| 			scale = 0.03, | ||||
| 			spread = {x = 200, y = 200, z = 200}, | ||||
| 			seed = 19822, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.6 | ||||
| 		}, | ||||
| 		biomes = {"default:grassland"}, | ||||
| 		y_min = 33, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "flowers:tulip", | ||||
| 	}) | ||||
| 	 | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:dirt_with_grass"}, | ||||
| 		sidelen = 16, | ||||
| 		noise_params = { | ||||
| 			offset = -0.02, | ||||
| 			scale = 0.03, | ||||
| 			spread = {x = 200, y = 200, z = 200}, | ||||
| 			seed = 1220999, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.6 | ||||
| 		}, | ||||
| 		biomes = {"default:grassland"}, | ||||
| 		y_min = -31000, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "flowers:dandelion_yellow", | ||||
| 	}) | ||||
| 	 | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:dirt_with_grass"}, | ||||
| 		sidelen = 16, | ||||
| 		noise_params = { | ||||
| 			offset = -0.02, | ||||
| 			scale = 0.03, | ||||
| 			spread = {x = 200, y = 200, z = 200}, | ||||
| 			seed = 36662, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.6 | ||||
| 		}, | ||||
| 		biomes = {"default:grassland"}, | ||||
| 		y_min = -31000, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "flowers:geranium", | ||||
| 	}) | ||||
| 	 | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:dirt_with_grass"}, | ||||
| 		sidelen = 16, | ||||
| 		noise_params = { | ||||
| 			offset = -0.02, | ||||
| 			scale = 0.03, | ||||
| 			spread = {x = 200, y = 200, z = 200}, | ||||
| 			seed = 1133, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.6 | ||||
| 		}, | ||||
| 		biomes = {"default:grassland"}, | ||||
| 		y_min = -31000, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "flowers:viola", | ||||
| 	}) | ||||
| 	 | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:dirt_with_grass"}, | ||||
| 		sidelen = 16, | ||||
| 		noise_params = { | ||||
| 			offset = -0.02, | ||||
| 			scale = 0.03, | ||||
| 			spread = {x = 200, y = 200, z = 200}, | ||||
| 			seed = 73133, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.6 | ||||
| 		}, | ||||
| 		biomes = {"default:grassland"}, | ||||
| 		y_min = -31000, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "flowers:dandelion_white", | ||||
| 	}) | ||||
|  | ||||
| 	-- Grasses | ||||
|  | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		deco_type = "schematic", | ||||
| 		place_on = {"default:dirt_with_grass"}, | ||||
| 		sidelen = 16, | ||||
| 		noise_params = { | ||||
| 			offset = 0.04, | ||||
| 			scale = 0.04, | ||||
| 			spread = {x = 200, y = 200, z = 200}, | ||||
| 			seed = 66440, | ||||
| 			scale = 0.02, | ||||
| 			spread = {x=250, y=250, z=250}, | ||||
| 			seed = 2, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.6 | ||||
| 			persist = 0.66 | ||||
| 		}, | ||||
| 		biomes = {"default:grassland"}, | ||||
| 		y_min = -31000, | ||||
| 		biomes = {"deciduous_forest"}, | ||||
| 		y_min = 6, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "default:grass_1", | ||||
| 		schematic = minetest.get_modpath("default").."/schematics/apple_tree.mts", | ||||
| 		flags = "place_center_x, place_center_z", | ||||
| 	}) | ||||
|  | ||||
| 	-- Jungle tree | ||||
|  | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:dirt_with_grass"}, | ||||
| 		deco_type = "schematic", | ||||
| 		place_on = {"default:dirt_with_grass", "default:dirt"}, | ||||
| 		sidelen = 80, | ||||
| 		fill_ratio = 0.09, | ||||
| 		biomes = {"rainforest", "rainforest_swamp"}, | ||||
| 		y_min = 0, | ||||
| 		y_max = 31000, | ||||
| 		schematic = minetest.get_modpath("default").."/schematics/jungle_tree.mts", | ||||
| 		flags = "place_center_x, place_center_z", | ||||
| 	}) | ||||
|  | ||||
| 	-- Taiga and temperate forest pine tree | ||||
|  | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "schematic", | ||||
| 		place_on = {"default:snowblock", "default:dirt_with_grass"}, | ||||
| 		sidelen = 16, | ||||
| 		noise_params = { | ||||
| 			offset = 0.02, | ||||
| 			scale = 0.06, | ||||
| 			spread = {x = 200, y = 200, z = 200}, | ||||
| 			seed = 66440, | ||||
| 			offset = 0.04, | ||||
| 			scale = 0.02, | ||||
| 			spread = {x=250, y=250, z=250}, | ||||
| 			seed = 2, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.66 | ||||
| 		}, | ||||
| 		biomes = {"taiga", "coniferous_forest"}, | ||||
| 		y_min = 2, | ||||
| 		y_max = 31000, | ||||
| 		schematic = minetest.get_modpath("default").."/schematics/pine_tree.mts", | ||||
| 		flags = "place_center_x, place_center_z", | ||||
| 	}) | ||||
|  | ||||
| 	-- Acacia tree | ||||
|  | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "schematic", | ||||
| 		place_on = {"default:dirt_with_dry_grass"}, | ||||
| 		sidelen = 80, | ||||
| 		noise_params = { | ||||
| 			offset = 0.001, | ||||
| 			scale = 0.0015, | ||||
| 			spread = {x=250, y=250, z=250}, | ||||
| 			seed = 2, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.66 | ||||
| 		}, | ||||
| 		biomes = {"savanna"}, | ||||
| 		y_min = 6, | ||||
| 		y_max = 31000, | ||||
| 		schematic = minetest.get_modpath("default").."/schematics/acacia_tree.mts", | ||||
| 		flags = "place_center_x, place_center_z", | ||||
| 		rotation = "random", | ||||
| 	}) | ||||
|  | ||||
| 	-- Large cactus | ||||
|  | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "schematic", | ||||
| 		place_on = {"default:desert_sand"}, | ||||
| 		sidelen = 80, | ||||
| 		noise_params = { | ||||
| 			offset = -0.0005, | ||||
| 			scale = 0.0015, | ||||
| 			spread = {x=200, y=200, z=200}, | ||||
| 			seed = 230, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.6 | ||||
| 		}, | ||||
| 		biomes = {"default:grassland"}, | ||||
| 		y_min = -31000, | ||||
| 		biomes = {"desert"}, | ||||
| 		y_min = 2, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "default:grass_2", | ||||
| 		schematic = minetest.get_modpath("default").."/schematics/large_cactus.mts", | ||||
| 		flags = "place_center_x", | ||||
| 		rotation = "random", | ||||
| 	}) | ||||
|  | ||||
| 	-- Cactus | ||||
|  | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:desert_sand"}, | ||||
| 		sidelen = 80, | ||||
| 		noise_params = { | ||||
| 			offset = -0.0005, | ||||
| 			scale = 0.0015, | ||||
| 			spread = {x=200, y=200, z=200}, | ||||
| 			seed = 230, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.6 | ||||
| 		}, | ||||
| 		biomes = {"desert"}, | ||||
| 		y_min = 2, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "default:cactus", | ||||
| 		height = 2, | ||||
| 	        height_max = 5, | ||||
| 	}) | ||||
|  | ||||
| 	-- Papyrus | ||||
|  | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "schematic", | ||||
| 		place_on = {"default:sand"}, | ||||
| 		sidelen = 16, | ||||
| 		noise_params = { | ||||
| 			offset = -0.3, | ||||
| 			scale = 0.7, | ||||
| 			spread = {x=200, y=200, z=200}, | ||||
| 			seed = 354, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.7 | ||||
| 		}, | ||||
| 		biomes = {"savanna_ocean", "desert_ocean"}, | ||||
| 		y_min = 0, | ||||
| 		y_max = 0, | ||||
| 		schematic = minetest.get_modpath("default").."/schematics/papyrus.mts", | ||||
| 	}) | ||||
|  | ||||
| 	-- Grasses | ||||
|  | ||||
| 	register_grass_decoration(-0.03,  0.09,  5) | ||||
| 	register_grass_decoration(-0.015, 0.075, 4) | ||||
| 	register_grass_decoration(0,      0.06,  3) | ||||
| 	register_grass_decoration(0.015,  0.045, 2) | ||||
| 	register_grass_decoration(0.03,   0.03,  1) | ||||
|  | ||||
| 	-- Dry grasses | ||||
|  | ||||
| 	register_dry_grass_decoration(5) | ||||
| 	register_dry_grass_decoration(4) | ||||
| 	register_dry_grass_decoration(3) | ||||
| 	register_dry_grass_decoration(2) | ||||
| 	register_dry_grass_decoration(1) | ||||
|  | ||||
| 	-- Junglegrass | ||||
|  | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:dirt_with_grass"}, | ||||
| 		sidelen = 80, | ||||
| 		fill_ratio = 0.1, | ||||
| 		biomes = {"rainforest"}, | ||||
| 		y_min = 1, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "default:junglegrass", | ||||
| 	}) | ||||
|  | ||||
| 	-- Dry shrub | ||||
|  | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:desert_sand", "default:dirt_with_snow"}, | ||||
| 		sidelen = 16, | ||||
| 		noise_params = { | ||||
| 			offset = 0, | ||||
| 			scale = 0.08, | ||||
| 			spread = {x = 200, y = 200, z = 200}, | ||||
| 			seed = 66440, | ||||
| 			scale = 0.02, | ||||
| 			spread = {x=200, y=200, z=200}, | ||||
| 			seed = 329, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.6 | ||||
| 		}, | ||||
| 		biomes = {"default:grassland"}, | ||||
| 		y_min = -31000, | ||||
| 		biomes = {"desert", "tundra"}, | ||||
| 		y_min = 2, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "default:grass_3", | ||||
| 	}) | ||||
| 	 | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:dirt_with_grass"}, | ||||
| 		sidelen = 16, | ||||
| 		noise_params = { | ||||
| 			offset = -0.02, | ||||
| 			scale = 0.10, | ||||
| 			spread = {x = 200, y = 200, z = 200}, | ||||
| 			seed = 66440, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.6 | ||||
| 		}, | ||||
| 		biomes = {"default:grassland"}, | ||||
| 		y_min = -31000, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "default:grass_4", | ||||
| 	}) | ||||
| 	 | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:dirt_with_grass"}, | ||||
| 		sidelen = 16, | ||||
| 		noise_params = { | ||||
| 			offset = -0.04, | ||||
| 			scale = 0.12, | ||||
| 			spread = {x = 200, y = 200, z = 200}, | ||||
| 			seed = 66440, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.6 | ||||
| 		}, | ||||
| 		biomes = {"default:grassland"}, | ||||
| 		y_min = -31000, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "default:grass_5", | ||||
| 		decoration = "default:dry_shrub", | ||||
| 	}) | ||||
| end | ||||
|  | ||||
| @@ -638,9 +1048,8 @@ end | ||||
| -- Generate nyan cats | ||||
| -- | ||||
|  | ||||
| -- All mapgens except singlenode | ||||
|  | ||||
| -- facedir: 0/1/2/3 (head node facedir value) | ||||
| -- length: length of rainbow tail | ||||
| function default.make_nyancat(pos, facedir, length) | ||||
| 	local tailvec = {x = 0, y = 0, z = 0} | ||||
| 	if facedir == 0 then | ||||
| @@ -652,7 +1061,6 @@ function default.make_nyancat(pos, facedir, length) | ||||
| 	elseif facedir == 3 then | ||||
| 		tailvec.x = -1 | ||||
| 	else | ||||
| 		--print("default.make_nyancat(): Invalid facedir: "+dump(facedir)) | ||||
| 		facedir = 0 | ||||
| 		tailvec.z = 1 | ||||
| 	end | ||||
| @@ -665,7 +1073,6 @@ function default.make_nyancat(pos, facedir, length) | ||||
| 	end | ||||
| end | ||||
|  | ||||
|  | ||||
| function default.generate_nyancats(minp, maxp, seed) | ||||
| 	local height_min = -31000 | ||||
| 	local height_max = -32 | ||||
| @@ -693,7 +1100,6 @@ end | ||||
| -- Detect mapgen to select functions | ||||
| -- | ||||
|  | ||||
|  | ||||
| -- Mods using singlenode mapgen can call these functions to enable | ||||
| -- the use of minetest.generate_ores or minetest.generate_decorations | ||||
|  | ||||
| @@ -708,4 +1114,3 @@ elseif mg_params.mgname ~= "singlenode" then | ||||
| 	default.register_decorations() | ||||
| 	minetest.register_on_generated(default.generate_nyancats) | ||||
| end | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,6 @@ | ||||
| local function register_flower(name) | ||||
| -- Mgv6 | ||||
|  | ||||
| local function register_mgv6_flower(name) | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:dirt_with_grass"}, | ||||
| @@ -17,7 +19,7 @@ local function register_flower(name) | ||||
| 	}) | ||||
| end | ||||
|  | ||||
| local function register_mushroom(name) | ||||
| local function register_mgv6_mushroom(name) | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:dirt_with_grass"}, | ||||
| @@ -37,20 +39,84 @@ local function register_mushroom(name) | ||||
| end | ||||
|  | ||||
| function flowers.register_mgv6_decorations() | ||||
| 	register_flower("rose") | ||||
| 	register_flower("tulip") | ||||
| 	register_flower("dandelion_yellow") | ||||
| 	register_flower("geranium") | ||||
| 	register_flower("viola") | ||||
| 	register_flower("dandelion_white") | ||||
| 	register_mgv6_flower("rose") | ||||
| 	register_mgv6_flower("tulip") | ||||
| 	register_mgv6_flower("dandelion_yellow") | ||||
| 	register_mgv6_flower("geranium") | ||||
| 	register_mgv6_flower("viola") | ||||
| 	register_mgv6_flower("dandelion_white") | ||||
|  | ||||
| 	register_mgv6_mushroom("mushroom_brown") | ||||
| 	register_mgv6_mushroom("mushroom_red") | ||||
| end | ||||
|  | ||||
| -- All other biome API mapgens (not singlenode) | ||||
|  | ||||
| local function register_flower(seed, name) | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:dirt_with_grass"}, | ||||
| 		sidelen = 16, | ||||
| 		noise_params = { | ||||
| 			offset = -0.02, | ||||
| 			scale = 0.03, | ||||
| 			spread = {x=200, y=200, z=200}, | ||||
| 			seed = seed, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.6 | ||||
| 		}, | ||||
| 		biomes = { | ||||
| 			"stone_grassland", | ||||
| 			"sandstone_grassland", | ||||
| 			"deciduous_forest", | ||||
| 			"coniferous_forest", | ||||
| 		}, | ||||
| 		y_min = 6, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "flowers:"..name, | ||||
| 	}) | ||||
| end | ||||
|  | ||||
| local function register_mushroom(name) | ||||
| 	minetest.register_decoration({ | ||||
| 		deco_type = "simple", | ||||
| 		place_on = {"default:dirt_with_grass"}, | ||||
| 		sidelen = 16, | ||||
| 		noise_params = { | ||||
| 			offset = 0, | ||||
| 			scale = 0.006, | ||||
| 			spread = {x=200, y=200, z=200}, | ||||
| 			seed = 7133, | ||||
| 			octaves = 3, | ||||
| 			persist = 0.6 | ||||
| 		}, | ||||
| 		biomes = {"deciduous_forest", "coniferous_forest"}, | ||||
| 		y_min = 6, | ||||
| 		y_max = 31000, | ||||
| 		decoration = "flowers:"..name, | ||||
| 	}) | ||||
| end | ||||
|  | ||||
| function flowers.register_decorations() | ||||
| 	register_flower(436,     "rose") | ||||
| 	register_flower(19822,   "tulip") | ||||
| 	register_flower(1220999, "dandelion_yellow") | ||||
| 	register_flower(36662,   "geranium") | ||||
| 	register_flower(1133,    "viola") | ||||
| 	register_flower(73133,   "dandelion_white") | ||||
|  | ||||
| 	register_mushroom("mushroom_brown") | ||||
| 	register_mushroom("mushroom_red") | ||||
| end | ||||
|  | ||||
| -- Enable in mapgen v6 only | ||||
| -- Detect mapgen to select functions | ||||
|  | ||||
| if minetest.get_mapgen_params().mgname == "v6" then | ||||
| -- Mods using singlenode mapgen can call these functions to enable | ||||
| -- the use of minetest.generate_ores or minetest.generate_decorations | ||||
|  | ||||
| local mg_params = minetest.get_mapgen_params() | ||||
| if mg_params.mgname == "v6" then | ||||
| 	flowers.register_mgv6_decorations() | ||||
| elseif mg_params.mgname ~= "singlenode" then | ||||
| 	flowers.register_decorations() | ||||
| end | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user