Allow use of most mapgens. Add some dungeon variety.

This commit is contained in:
Duane 2016-06-23 20:21:38 -05:00
parent 1aebdf3b47
commit 3e3e0c17d6
11 changed files with 280 additions and 211 deletions

View file

@ -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