From 047bfb9ad1bab6869bcf6ceba704f602433b817a Mon Sep 17 00:00:00 2001 From: paramat Date: Mon, 24 Nov 2014 04:14:48 +0000 Subject: [PATCH] Simple biomes for mgv5/mgv7. Uses get_mapgen_params --- mods/default/mapgen.lua | 264 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 254 insertions(+), 10 deletions(-) diff --git a/mods/default/mapgen.lua b/mods/default/mapgen.lua index 386ba417..25eb8f8e 100644 --- a/mods/default/mapgen.lua +++ b/mods/default/mapgen.lua @@ -400,18 +400,9 @@ function default.mgv6_ongen(minp, maxp, seed) end end end + end --- --- Detect mapgen and register suitable on-generated function --- - -minetest.register_on_mapgen_init(function(mg_params) - if mg_params.mgname == "v6" then - minetest.register_on_generated(default.mgv6_ongen) - end -end) - -- -- Generate nyan cats in all mapgens -- @@ -465,3 +456,256 @@ function default.generate_nyancats(minp, maxp, seed) end minetest.register_on_generated(default.generate_nyancats) + +-- +-- Register biomes +-- + +function default.register_biomes() + + minetest.clear_registered_biomes() + + -- Temperate biomes + + minetest.register_biome({ + name = "grassland", + node_top = "default:dirt_with_grass", + node_shore_top = "default:sand", + depth_top = 1, + node_filler = "default:dirt", + node_shore_filler = "default:sand", + depth_filler = 2, + height_shore = 3, + node_underwater = "default:sand", + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_dust = "", + y_min = -32000, + y_max = 32000, + heat_point = 50, + humidity_point = 50, + }) + + -- + -- Register decorations + -- + + -- Grassland + + -- Flowers + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.015, + scale = 0.03, + spread = {x=100, y=100, z=100}, + seed = 436, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland"}, + y_min = -32000, + y_max = 32000, + decoration = "flowers:rose", + }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.015, + scale = 0.03, + spread = {x=100, y=100, z=100}, + seed = 19822, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland"}, + y_min = -32000, + y_max = 32000, + decoration = "flowers:tulip", + }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.015, + scale = 0.03, + spread = {x=100, y=100, z=100}, + seed = 1220999, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland"}, + y_min = -32000, + y_max = 32000, + decoration = "flowers:dandelion_yellow", + }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.015, + scale = 0.03, + spread = {x=100, y=100, z=100}, + seed = 36662, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland"}, + y_min = -32000, + y_max = 32000, + decoration = "flowers:geranium", + }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.015, + scale = 0.03, + spread = {x=100, y=100, z=100}, + seed = 1133, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland"}, + y_min = -32000, + y_max = 32000, + decoration = "flowers:viola", + }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.015, + scale = 0.03, + spread = {x=100, y=100, z=100}, + seed = 73133, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland"}, + y_min = -32000, + y_max = 32000, + decoration = "flowers:dandelion_white", + }) + + -- Grasses + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.04, + scale = 0.08, + spread = {x=100, y=100, z=100}, + seed = 66440, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland"}, + y_min = -32000, + y_max = 32000, + decoration = "default:grass_1", + }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.02, + scale = 0.08, + spread = {x=100, y=100, z=100}, + seed = 66440, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland"}, + y_min = -32000, + y_max = 32000, + decoration = "default:grass_2", + }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.08, + spread = {x=100, y=100, z=100}, + seed = 66440, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland"}, + y_min = -32000, + y_max = 32000, + 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.08, + spread = {x=100, y=100, z=100}, + seed = 66440, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland"}, + y_min = -32000, + y_max = 32000, + 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.08, + spread = {x=100, y=100, z=100}, + seed = 66440, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland"}, + y_min = -32000, + y_max = 32000, + decoration = "default:grass_5", + }) + +end + +-- +-- Detect mapgen and select suitable biome code +-- + +local mg_params = minetest.get_mapgen_params() +if mg_params.mgname == "v6" then + minetest.register_on_generated(default.mgv6_ongen) +else + default.register_biomes() +end +