mapgen.lua: Add dirt/sand/gravel blob ores for mgv5/mgv7

Create register ores function. Select and order functions per mapgen
Use blob ore for clay. Update ore height_min/max to y_min/max
Tune flower amount
master
paramat 2015-01-21 15:27:29 +00:00
parent 03c00a831d
commit 3b526a7276
1 changed files with 299 additions and 222 deletions

View File

@ -31,192 +31,203 @@ minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble")
-- Ore generation -- Ore generation
-- --
minetest.register_ore({ function default.register_ores()
ore_type = "scatter", minetest.register_ore({
ore = "default:stone_with_coal", ore_type = "scatter",
wherein = "default:stone", ore = "default:stone_with_coal",
clust_scarcity = 8*8*8, wherein = "default:stone",
clust_num_ores = 8, clust_scarcity = 8*8*8,
clust_size = 3, clust_num_ores = 8,
height_min = -31000, clust_size = 3,
height_max = 64, y_min = -31000,
}) y_max = 64,
})
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_coal", ore = "default:stone_with_coal",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 24*24*24, clust_scarcity = 24*24*24,
clust_num_ores = 27, clust_num_ores = 27,
clust_size = 6, clust_size = 6,
height_min = -31000, y_min = -31000,
height_max = 0, y_max = 0,
flags = "absheight", flags = "absheight",
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_iron", ore = "default:stone_with_iron",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 12*12*12, clust_scarcity = 12*12*12,
clust_num_ores = 3, clust_num_ores = 3,
clust_size = 2, clust_size = 2,
height_min = -15, y_min = -15,
height_max = 2, y_max = 2,
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_iron", ore = "default:stone_with_iron",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 9*9*9, clust_scarcity = 9*9*9,
clust_num_ores = 5, clust_num_ores = 5,
clust_size = 3, clust_size = 3,
height_min = -63, y_min = -63,
height_max = -16, y_max = -16,
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_iron", ore = "default:stone_with_iron",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 7*7*7, clust_scarcity = 7*7*7,
clust_num_ores = 5, clust_num_ores = 5,
clust_size = 3, clust_size = 3,
height_min = -31000, y_min = -31000,
height_max = -64, y_max = -64,
flags = "absheight", flags = "absheight",
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_iron", ore = "default:stone_with_iron",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 24*24*24, clust_scarcity = 24*24*24,
clust_num_ores = 27, clust_num_ores = 27,
clust_size = 6, clust_size = 6,
height_min = -31000, y_min = -31000,
height_max = -64, y_max = -64,
flags = "absheight", flags = "absheight",
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_mese", ore = "default:stone_with_mese",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 18*18*18, clust_scarcity = 18*18*18,
clust_num_ores = 3, clust_num_ores = 3,
clust_size = 2, clust_size = 2,
height_min = -255, y_min = -255,
height_max = -64, y_max = -64,
flags = "absheight", flags = "absheight",
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_mese", ore = "default:stone_with_mese",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 14*14*14, clust_scarcity = 14*14*14,
clust_num_ores = 5, clust_num_ores = 5,
clust_size = 3, clust_size = 3,
height_min = -31000, y_min = -31000,
height_max = -256, y_max = -256,
flags = "absheight", flags = "absheight",
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:mese", ore = "default:mese",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 36*36*36, clust_scarcity = 36*36*36,
clust_num_ores = 3, clust_num_ores = 3,
clust_size = 2, clust_size = 2,
height_min = -31000, y_min = -31000,
height_max = -1024, y_max = -1024,
flags = "absheight", flags = "absheight",
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_gold", ore = "default:stone_with_gold",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 15*15*15, clust_scarcity = 15*15*15,
clust_num_ores = 3, clust_num_ores = 3,
clust_size = 2, clust_size = 2,
height_min = -255, y_min = -255,
height_max = -64, y_max = -64,
flags = "absheight", flags = "absheight",
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_gold", ore = "default:stone_with_gold",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 13*13*13, clust_scarcity = 13*13*13,
clust_num_ores = 5, clust_num_ores = 5,
clust_size = 3, clust_size = 3,
height_min = -31000, y_min = -31000,
height_max = -256, y_max = -256,
flags = "absheight", flags = "absheight",
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_diamond", ore = "default:stone_with_diamond",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 17*17*17, clust_scarcity = 17*17*17,
clust_num_ores = 4, clust_num_ores = 4,
clust_size = 3, clust_size = 3,
height_min = -255, y_min = -255,
height_max = -128, y_max = -128,
flags = "absheight", flags = "absheight",
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_diamond", ore = "default:stone_with_diamond",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 15*15*15, clust_scarcity = 15*15*15,
clust_num_ores = 4, clust_num_ores = 4,
clust_size = 3, clust_size = 3,
height_min = -31000, y_min = -31000,
height_max = -256, y_max = -256,
flags = "absheight", flags = "absheight",
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_copper", ore = "default:stone_with_copper",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 12*12*12, clust_scarcity = 12*12*12,
clust_num_ores = 4, clust_num_ores = 4,
clust_size = 3, clust_size = 3,
height_min = -63, y_min = -63,
height_max = -16, y_max = -16,
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_copper", ore = "default:stone_with_copper",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 9*9*9, clust_scarcity = 9*9*9,
clust_num_ores = 5, clust_num_ores = 5,
clust_size = 3, clust_size = 3,
height_min = -31000, y_min = -31000,
height_max = -64, y_max = -64,
flags = "absheight", flags = "absheight",
}) })
minetest.register_ore({
ore_type = "blob",
ore = "default:clay",
wherein = {"default:sand"},
clust_scarcity = 24*24*24,
clust_size = 7,
y_min = -10,
y_max = 0,
noise_threshhold = 0,
noise_params = {
offset=0.35,
scale=0.2,
spread={x=5, y=5, z=5},
seed=-316,
octaves=1,
persist=0.5
},
})
end
minetest.register_ore({
ore_type = "scatter",
ore = "default:clay",
wherein = "default:sand",
clust_scarcity = 15*15*15,
clust_num_ores = 64,
clust_size = 5,
height_max = 0,
height_min = -10,
})
function default.generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max) function default.generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max)
minetest.log('action', "WARNING: default.generate_ore is deprecated") minetest.log('action', "WARNING: default.generate_ore is deprecated")
@ -433,6 +444,7 @@ function default.make_nyancat(pos, facedir, length)
end end
end end
function default.generate_nyancats(minp, maxp, seed) function default.generate_nyancats(minp, maxp, seed)
local height_min = -31000 local height_min = -31000
local height_max = -32 local height_max = -32
@ -455,6 +467,7 @@ function default.generate_nyancats(minp, maxp, seed)
end end
end end
minetest.register_on_generated(default.generate_nyancats) minetest.register_on_generated(default.generate_nyancats)
-- --
@ -462,11 +475,8 @@ minetest.register_on_generated(default.generate_nyancats)
-- --
function default.register_biomes() function default.register_biomes()
minetest.clear_registered_biomes() minetest.clear_registered_biomes()
-- Temperate biomes
minetest.register_biome({ minetest.register_biome({
name = "grassland", name = "grassland",
node_top = "default:dirt_with_grass", node_top = "default:dirt_with_grass",
@ -482,18 +492,16 @@ function default.register_biomes()
--depth_water_top = , --depth_water_top = ,
--node_water = "", --node_water = "",
--node_dust = "", --node_dust = "",
y_min = -32000, y_min = -31000,
y_max = 32000, y_max = 31000,
heat_point = 50, heat_point = 50,
humidity_point = 50, humidity_point = 50,
}) })
-- --
-- Register decorations -- Register decorations
-- --
-- Grassland
-- Flowers -- Flowers
minetest.register_decoration({ minetest.register_decoration({
@ -501,7 +509,7 @@ function default.register_biomes()
place_on = {"default:dirt_with_grass"}, place_on = {"default:dirt_with_grass"},
sidelen = 16, sidelen = 16,
noise_params = { noise_params = {
offset = -0.015, offset = -0.02,
scale = 0.03, scale = 0.03,
spread = {x=100, y=100, z=100}, spread = {x=100, y=100, z=100},
seed = 436, seed = 436,
@ -509,17 +517,17 @@ function default.register_biomes()
persist = 0.6 persist = 0.6
}, },
biomes = {"grassland"}, biomes = {"grassland"},
y_min = -32000, y_min = -31000,
y_max = 32000, y_max = 31000,
decoration = "flowers:rose", decoration = "flowers:rose",
}) })
minetest.register_decoration({ minetest.register_decoration({
deco_type = "simple", deco_type = "simple",
place_on = {"default:dirt_with_grass"}, place_on = {"default:dirt_with_grass"},
sidelen = 16, sidelen = 16,
noise_params = { noise_params = {
offset = -0.015, offset = -0.02,
scale = 0.03, scale = 0.03,
spread = {x=100, y=100, z=100}, spread = {x=100, y=100, z=100},
seed = 19822, seed = 19822,
@ -527,17 +535,17 @@ function default.register_biomes()
persist = 0.6 persist = 0.6
}, },
biomes = {"grassland"}, biomes = {"grassland"},
y_min = -32000, y_min = -31000,
y_max = 32000, y_max = 31000,
decoration = "flowers:tulip", decoration = "flowers:tulip",
}) })
minetest.register_decoration({ minetest.register_decoration({
deco_type = "simple", deco_type = "simple",
place_on = {"default:dirt_with_grass"}, place_on = {"default:dirt_with_grass"},
sidelen = 16, sidelen = 16,
noise_params = { noise_params = {
offset = -0.015, offset = -0.02,
scale = 0.03, scale = 0.03,
spread = {x=100, y=100, z=100}, spread = {x=100, y=100, z=100},
seed = 1220999, seed = 1220999,
@ -545,17 +553,17 @@ function default.register_biomes()
persist = 0.6 persist = 0.6
}, },
biomes = {"grassland"}, biomes = {"grassland"},
y_min = -32000, y_min = -31000,
y_max = 32000, y_max = 31000,
decoration = "flowers:dandelion_yellow", decoration = "flowers:dandelion_yellow",
}) })
minetest.register_decoration({ minetest.register_decoration({
deco_type = "simple", deco_type = "simple",
place_on = {"default:dirt_with_grass"}, place_on = {"default:dirt_with_grass"},
sidelen = 16, sidelen = 16,
noise_params = { noise_params = {
offset = -0.015, offset = -0.02,
scale = 0.03, scale = 0.03,
spread = {x=100, y=100, z=100}, spread = {x=100, y=100, z=100},
seed = 36662, seed = 36662,
@ -563,17 +571,17 @@ function default.register_biomes()
persist = 0.6 persist = 0.6
}, },
biomes = {"grassland"}, biomes = {"grassland"},
y_min = -32000, y_min = -31000,
y_max = 32000, y_max = 31000,
decoration = "flowers:geranium", decoration = "flowers:geranium",
}) })
minetest.register_decoration({ minetest.register_decoration({
deco_type = "simple", deco_type = "simple",
place_on = {"default:dirt_with_grass"}, place_on = {"default:dirt_with_grass"},
sidelen = 16, sidelen = 16,
noise_params = { noise_params = {
offset = -0.015, offset = -0.02,
scale = 0.03, scale = 0.03,
spread = {x=100, y=100, z=100}, spread = {x=100, y=100, z=100},
seed = 1133, seed = 1133,
@ -581,17 +589,17 @@ function default.register_biomes()
persist = 0.6 persist = 0.6
}, },
biomes = {"grassland"}, biomes = {"grassland"},
y_min = -32000, y_min = -31000,
y_max = 32000, y_max = 31000,
decoration = "flowers:viola", decoration = "flowers:viola",
}) })
minetest.register_decoration({ minetest.register_decoration({
deco_type = "simple", deco_type = "simple",
place_on = {"default:dirt_with_grass"}, place_on = {"default:dirt_with_grass"},
sidelen = 16, sidelen = 16,
noise_params = { noise_params = {
offset = -0.015, offset = -0.02,
scale = 0.03, scale = 0.03,
spread = {x=100, y=100, z=100}, spread = {x=100, y=100, z=100},
seed = 73133, seed = 73133,
@ -599,11 +607,11 @@ function default.register_biomes()
persist = 0.6 persist = 0.6
}, },
biomes = {"grassland"}, biomes = {"grassland"},
y_min = -32000, y_min = -31000,
y_max = 32000, y_max = 31000,
decoration = "flowers:dandelion_white", decoration = "flowers:dandelion_white",
}) })
-- Grasses -- Grasses
minetest.register_decoration({ minetest.register_decoration({
@ -619,11 +627,11 @@ function default.register_biomes()
persist = 0.6 persist = 0.6
}, },
biomes = {"grassland"}, biomes = {"grassland"},
y_min = -32000, y_min = -31000,
y_max = 32000, y_max = 31000,
decoration = "default:grass_1", decoration = "default:grass_1",
}) })
minetest.register_decoration({ minetest.register_decoration({
deco_type = "simple", deco_type = "simple",
place_on = {"default:dirt_with_grass"}, place_on = {"default:dirt_with_grass"},
@ -637,11 +645,11 @@ function default.register_biomes()
persist = 0.6 persist = 0.6
}, },
biomes = {"grassland"}, biomes = {"grassland"},
y_min = -32000, y_min = -31000,
y_max = 32000, y_max = 31000,
decoration = "default:grass_2", decoration = "default:grass_2",
}) })
minetest.register_decoration({ minetest.register_decoration({
deco_type = "simple", deco_type = "simple",
place_on = {"default:dirt_with_grass"}, place_on = {"default:dirt_with_grass"},
@ -655,11 +663,11 @@ function default.register_biomes()
persist = 0.6 persist = 0.6
}, },
biomes = {"grassland"}, biomes = {"grassland"},
y_min = -32000, y_min = -31000,
y_max = 32000, y_max = 31000,
decoration = "default:grass_3", decoration = "default:grass_3",
}) })
minetest.register_decoration({ minetest.register_decoration({
deco_type = "simple", deco_type = "simple",
place_on = {"default:dirt_with_grass"}, place_on = {"default:dirt_with_grass"},
@ -673,11 +681,11 @@ function default.register_biomes()
persist = 0.6 persist = 0.6
}, },
biomes = {"grassland"}, biomes = {"grassland"},
y_min = -32000, y_min = -31000,
y_max = 32000, y_max = 31000,
decoration = "default:grass_4", decoration = "default:grass_4",
}) })
minetest.register_decoration({ minetest.register_decoration({
deco_type = "simple", deco_type = "simple",
place_on = {"default:dirt_with_grass"}, place_on = {"default:dirt_with_grass"},
@ -691,11 +699,73 @@ function default.register_biomes()
persist = 0.6 persist = 0.6
}, },
biomes = {"grassland"}, biomes = {"grassland"},
y_min = -32000, y_min = -31000,
y_max = 32000, y_max = 31000,
decoration = "default:grass_5", decoration = "default:grass_5",
}) })
end
--
-- Register blob ore
--
function default.register_blobs()
minetest.register_ore({
ore_type = "blob",
ore = "default:sand",
wherein = {"default:stone"},
clust_scarcity = 24*24*24,
clust_size = 7,
y_min = -63,
y_max = 4,
noise_threshhold = 0,
noise_params = {
offset=0.35,
scale=0.2,
spread={x=5, y=5, z=5},
seed=2316,
octaves=1,
persist=0.5
},
})
minetest.register_ore({
ore_type = "blob",
ore = "default:dirt",
wherein = {"default:stone"},
clust_scarcity = 24*24*24,
clust_size = 7,
y_min = -63,
y_max = 31000,
noise_threshhold = 0,
noise_params = {
offset=0.35,
scale=0.2,
spread={x=5, y=5, z=5},
seed=17676,
octaves=1,
persist=0.5
},
})
minetest.register_ore({
ore_type = "blob",
ore = "default:gravel",
wherein = {"default:stone"},
clust_scarcity = 24*24*24,
clust_size = 7,
y_min = -31000,
y_max = 31000,
noise_threshhold = 0,
noise_params = {
offset=0.35,
scale=0.2,
spread={x=5, y=5, z=5},
seed=766,
octaves=1,
persist=0.5
},
})
end end
-- --
@ -703,9 +773,16 @@ end
-- --
local mg_params = minetest.get_mapgen_params() local mg_params = minetest.get_mapgen_params()
if mg_params.mgname == "v6" then if mg_params.mgname == "v5" then
minetest.register_on_generated(default.mgv6_ongen)
else
default.register_biomes() default.register_biomes()
default.register_blobs()
default.register_ores()
elseif mg_params.mgname == "v6" then
minetest.register_on_generated(default.mgv6_ongen)
default.register_ores()
elseif mg_params.mgname == "v7" then
default.register_biomes()
default.register_blobs()
default.register_ores()
end end