mirror of
http://repo.or.cz/minetest_pyramids/tsm_pyramids.git
synced 2025-01-03 13:00:23 +01:00
Flood every 8th pyramid with sand
This commit is contained in:
parent
d3187e4a08
commit
acc22a5576
18
init.lua
18
init.lua
@ -89,11 +89,17 @@ local function underground(pos, stone, sand)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function make_entrance(pos, brick)
|
local function make_entrance(pos, brick, sand, flood_sand)
|
||||||
local gang = {x=pos.x+10,y=pos.y, z=pos.z}
|
local gang = {x=pos.x+10,y=pos.y, z=pos.z}
|
||||||
for iy=2,3,1 do
|
local max_sand_height = math.random(1,3)
|
||||||
for iz=0,6,1 do
|
for iz=0,6,1 do
|
||||||
minetest.remove_node({x=gang.x+1,y=gang.y+iy,z=gang.z+iz})
|
local sand_height = math.random(1,max_sand_height)
|
||||||
|
for iy=2,3,1 do
|
||||||
|
if flood_sand and iy <= sand_height and iz >= 3 then
|
||||||
|
minetest.set_node({x=gang.x+1,y=gang.y+iy,z=gang.z+iz}, {name=sand})
|
||||||
|
else
|
||||||
|
minetest.remove_node({x=gang.x+1,y=gang.y+iy,z=gang.z+iz})
|
||||||
|
end
|
||||||
if iz >=3 and iy == 3 then
|
if iz >=3 and iy == 3 then
|
||||||
minetest.set_node({x=gang.x,y=gang.y+iy+1,z=gang.z+iz}, {name=brick})
|
minetest.set_node({x=gang.x,y=gang.y+iy+1,z=gang.z+iz}, {name=brick})
|
||||||
minetest.set_node({x=gang.x+1,y=gang.y+iy+1,z=gang.z+iz}, {name=brick})
|
minetest.set_node({x=gang.x+1,y=gang.y+iy+1,z=gang.z+iz}, {name=brick})
|
||||||
@ -118,9 +124,9 @@ local function make(pos, brick, sandstone, stone, sand, ptype, room_id)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local ok, msg = tsm_pyramids.make_room(pos, ptype, room_id)
|
local ok, msg, flood_sand = tsm_pyramids.make_room(pos, ptype, room_id)
|
||||||
add_spawner({x=pos.x+11,y=pos.y+2, z=pos.z+17})
|
add_spawner({x=pos.x+11,y=pos.y+2, z=pos.z+17})
|
||||||
make_entrance({x=pos.x,y=pos.y, z=pos.z}, brick)
|
make_entrance({x=pos.x,y=pos.y, z=pos.z}, brick, sand, flood_sand)
|
||||||
minetest.log("action", "Created pyramid at ("..pos.x..","..pos.y..","..pos.z..")")
|
minetest.log("action", "Created pyramid at ("..pos.x..","..pos.y..","..pos.z..")")
|
||||||
return ok, msg
|
return ok, msg
|
||||||
end
|
end
|
||||||
|
33
room.lua
33
room.lua
@ -643,7 +643,14 @@ function tsm_pyramids.make_room(pos, stype, room_id)
|
|||||||
if room.traps then
|
if room.traps then
|
||||||
tsm_pyramids.make_traps(pos, stype)
|
tsm_pyramids.make_traps(pos, stype)
|
||||||
end
|
end
|
||||||
return true
|
local sanded = false
|
||||||
|
if room.flood_sand ~= false then
|
||||||
|
if math.random(1,8) == 1 then
|
||||||
|
tsm_pyramids.flood_sand(pos, stype)
|
||||||
|
sanded = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return true, nil, sanded
|
||||||
end
|
end
|
||||||
|
|
||||||
local shuffle_traps = function(chance)
|
local shuffle_traps = function(chance)
|
||||||
@ -676,3 +683,27 @@ function tsm_pyramids.make_traps(pos, stype)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function tsm_pyramids.flood_sand(pos, stype)
|
||||||
|
local nn = "default:sand"
|
||||||
|
if stype == "desert" then
|
||||||
|
nn = "default:desert_sand"
|
||||||
|
end
|
||||||
|
local hole = {x=pos.x+7,y=pos.y+1, z=pos.z+7}
|
||||||
|
local maxh = math.random(1,4)
|
||||||
|
local chance = math.random(1,7)
|
||||||
|
for ix=0,8,1 do
|
||||||
|
for iz=0,8,1 do
|
||||||
|
if math.random(1,chance) == 1 then
|
||||||
|
local h = math.random(1,maxh)
|
||||||
|
for iy=0,h,1 do
|
||||||
|
local p = {x=hole.x+ix,y=hole.y+iy,z=hole.z+iz}
|
||||||
|
if minetest.get_node(p).name == "air" then
|
||||||
|
minetest.set_node(p, {name=nn})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user