Generate igloos on snow blocks

This commit is contained in:
Wuzzy 2017-05-20 07:59:10 +02:00
parent 24ed86f18c
commit 9c22df853d
2 changed files with 11 additions and 1 deletions

View file

@ -891,6 +891,7 @@ local perlin
minetest.register_on_generated(function(minp, maxp, seed)
local chunk_has_desert_well = false
local chunk_has_desert_temple = false
local chunk_has_igloo = false
if maxp.y >= 2 and minp.y <= 0 then
-- Generate clay
-- Assume X and Z lengths are equal
@ -988,6 +989,15 @@ minetest.register_on_generated(function(minp, maxp, seed)
end
end
end
elseif not chunk_has_igloo and nn == "mcl_core:snowblock" then
if math.random(1, 4400) == 1 then
-- Check surface
local surface = minetest.find_nodes_in_area({x=p.x,y=p.y-1,z=p.z}, {x=p.x+9, y=p.y-1, z=p.z+9}, "mcl_core:snowblock")
if #surface >= 63 then
mcl_structures.call_struct(p, "igloo")
chunk_has_igloo = true
end
end
end
end
end

View file

@ -171,7 +171,7 @@ end
mcl_structures.generate_igloo_top = function(pos)
-- FIXME: This spawns bookshelf instead of furnace. Fix this!
-- Furnace does ot work atm because apparently meta is not set. :-(
local newpos = {x=pos.x,y=pos.y-2,z=pos.z}
local newpos = {x=pos.x,y=pos.y-1,z=pos.z}
local path = minetest.get_modpath("mcl_structures").."/build/igloo_top.mts"
minetest.place_schematic(newpos, path, "random", nil, true)
end