Remove heavy bias towards desert sandstone pyramid

This commit is contained in:
Wuzzy 2019-08-20 16:13:03 +02:00
parent d834170a7b
commit 9c6dc7908a
1 changed files with 14 additions and 8 deletions

View File

@ -194,7 +194,6 @@ end
minetest.register_on_generated(function(minp, maxp, seed) minetest.register_on_generated(function(minp, maxp, seed)
if maxp.y < 0 then return end if maxp.y < 0 then return end
math.randomseed(seed) math.randomseed(seed)
local cnt = 0
if not perlin1 then if not perlin1 then
perlin1 = minetest.get_perlin(perl1.SEED1, perl1.OCTA1, perl1.PERS1, perl1.SCAL1) perlin1 = minetest.get_perlin(perl1.SEED1, perl1.OCTA1, perl1.PERS1, perl1.SCAL1)
end end
@ -203,19 +202,26 @@ minetest.register_on_generated(function(minp, maxp, seed)
if noise1 > 0.25 or noise1 < -0.26 then if noise1 > 0.25 or noise1 < -0.26 then
local mpos = {x=math.random(minp.x,maxp.x), y=math.random(minp.y,maxp.y), z=math.random(minp.z,maxp.z)} local mpos = {x=math.random(minp.x,maxp.x), y=math.random(minp.y,maxp.y), z=math.random(minp.z,maxp.z)}
local sands = {"default:desert_sand", "default:sand"} local sands = {"default:sand", "default:desert_sand"}
local p2 local p2
local psand = {}
local sand local sand
local cnt = 0
local cnt_min = 100
for s=1, #sands do for s=1, #sands do
cnt = 0
sand = sands[s] sand = sands[s]
p2 = minetest.find_node_near(mpos, 25, sand) psand[s] = minetest.find_node_near(mpos, 25, sand)
while p2 == nil and cnt < 5 do while psand == nil and cnt < 5 do
cnt = cnt+1 cnt = cnt+1
mpos = {x=math.random(minp.x,maxp.x), y=math.random(minp.y,maxp.y), z=math.random(minp.z,maxp.z)} mpos = {x=math.random(minp.x,maxp.x), y=math.random(minp.y,maxp.y), z=math.random(minp.z,maxp.z)}
p2 = minetest.find_node_near(mpos, 25, sand) psand[s] = minetest.find_node_near(mpos, 25, sand)
end end
if p2 ~= nil then if psand[s] ~= nil then
break if cnt < cnt_min then
cnt_min = cnt
p2 = psand[s]
end
end end
end end
if p2 == nil then return end if p2 == nil then return end
@ -245,7 +251,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
minetest.find_node_near(p2, 52, {"default:desert_sandstone_brick"}) ~= nil then minetest.find_node_near(p2, 52, {"default:desert_sandstone_brick"}) ~= nil then
return return
end end
if math.random(0,10) > 7 then if math.random(0,10) > 7 then
return return
end end