Allow use of most mapgens. Add some dungeon variety.
This commit is contained in:
parent
1aebdf3b47
commit
3e3e0c17d6
11 changed files with 280 additions and 211 deletions
18
mapgen.lua
18
mapgen.lua
|
@ -16,11 +16,13 @@ local data = {}
|
|||
local p2data = {} -- vm rotation data buffer
|
||||
|
||||
|
||||
-- Create a table of biome ids, so I can use the biomemap.
|
||||
local get_biome_id = minetest.get_biome_id
|
||||
local biome_ids = {}
|
||||
for name, desc in pairs(minetest.registered_biomes) do
|
||||
biome_ids[get_biome_id(desc.name)] = desc.name
|
||||
if fun_caves.use_bi_hi then
|
||||
-- Create a table of biome ids, so I can use the biomemap.
|
||||
local get_biome_id = minetest.get_biome_id
|
||||
for name, desc in pairs(minetest.registered_biomes) do
|
||||
biome_ids[get_biome_id(desc.name)] = desc.name
|
||||
end
|
||||
end
|
||||
|
||||
--local function get_decoration(biome)
|
||||
|
@ -350,10 +352,14 @@ local function generate(p_minp, p_maxp, seed)
|
|||
local vm, emin, emax = minetest.get_mapgen_object("voxelmanip")
|
||||
vm:get_data(data)
|
||||
p2data = vm:get_param2_data()
|
||||
local heightmap = minetest.get_mapgen_object("heightmap")
|
||||
local heightmap
|
||||
local area = VoxelArea:new({MinEdge = emin, MaxEdge = emax})
|
||||
local csize = vector.add(vector.subtract(maxp, minp), 1)
|
||||
|
||||
if fun_caves.use_bi_hi then
|
||||
heightmap = minetest.get_mapgen_object("heightmap")
|
||||
end
|
||||
|
||||
-- use the same seed (based on perlin noise).
|
||||
math.randomseed(minetest.get_perlin(seed_noise):get2d({x=minp.x, y=minp.z}))
|
||||
|
||||
|
@ -383,7 +389,7 @@ local function generate(p_minp, p_maxp, seed)
|
|||
write = true
|
||||
else
|
||||
local write1, write2, write3
|
||||
write1 = fun_caves.cavegen(minp, maxp, data, area, node, heightmap, underzone)
|
||||
write1, heightmap = fun_caves.cavegen(minp, maxp, data, area, node, heightmap, underzone)
|
||||
write2, write_p2 = fun_caves.decogen(minp, maxp, data, p2data, area, node, heightmap, biome_ids, underzone)
|
||||
write3 = fun_caves.treegen(minp, maxp, data, p2data, area, node)
|
||||
write = write1 or write2 or write3
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue