39 lines
1021 B
Lua
39 lines
1021 B
Lua
|
|
local random = math.random
|
|
|
|
-- Generate Illumishroom in caves on top of coal
|
|
local function generate(minp, maxp)
|
|
|
|
if minp.y > -30 or maxp.y < -3000 then
|
|
return
|
|
end
|
|
|
|
local coal = minetest.find_nodes_in_area_under_air(
|
|
minp, maxp, "default:stone_with_coal")
|
|
|
|
for n = 1, #coal do
|
|
|
|
if random(2) == 1 then
|
|
|
|
local bpos = {x = coal[n].x, y = coal[n].y + 1, z = coal[n].z}
|
|
|
|
if bpos.y > -3000 and bpos.y < -2000 then
|
|
minetest.set_node(bpos, {name = "ethereal:illumishroom3"})
|
|
elseif bpos.y > -2000 and bpos.y < -1000 then
|
|
minetest.set_node(bpos, {name = "ethereal:illumishroom2"})
|
|
elseif bpos.y > -1000 and bpos.y < -30 then
|
|
minetest.set_node(bpos, {name = "ethereal:illumishroom"})
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
if minetest.save_gen_notify then -- async env (5.9+)
|
|
minetest.register_on_generated(function(vmanip, minp, maxp, blockseed)
|
|
generate(minp, maxp)
|
|
end)
|
|
else -- main thread (5.8 and earlier)
|
|
minetest.register_on_generated(function(minp, maxp, blockseed)
|
|
generate(minp, maxp)
|
|
end)
|
|
end |