Spawn desert sandstone pyramids

This commit is contained in:
Wuzzy
2018-05-25 00:23:05 +02:00
parent 4a8dab67db
commit a069c026fd
3 changed files with 44 additions and 29 deletions

View File

@ -18,37 +18,48 @@ local trap = {"b","b","b","b","b","b","b","b","b",
"l","b","l","b","l","b","l","b","b",
"b","b","b","b","b","b","b","b","b"}
local code = {}
code["s"] = "sandstone"
code["eye"] = "deco_stone1"
code["men"] = "deco_stone2"
code["sun"] = "deco_stone3"
code["c"] = "chest"
code["b"] = "sandstonebrick"
code["a"] = "air"
code["l"] = "lava_source"
code["t"] = "trap"
local code_sandstone = {
["s"] = "sandstone",
["1"] = "deco_stone1",
["2"] = "deco_stone2",
["3"] = "deco_stone3",
["c"] = "chest",
["b"] = "sandstonebrick",
["a"] = "air",
["l"] = "lava_source",
["t"] = "trap",
}
local code_desert = table.copy(code_sandstone)
code_desert["s"] = "desert_sandstone"
code_desert["1"] = "deco_stone4"
code_desert["2"] = "deco_stone5"
code_desert["3"] = "deco_stone6"
code_desert["b"] = "desert_sandstone_brick"
local function replace(str,iy)
local function replace(str, iy, code_table)
local out = "default:"
if iy < 4 and str == "c" then str = "a" end
if iy == 0 and str == "s" then out = "tsm_pyramids:" str = "sun" end
if iy == 3 and str == "s" then out = "tsm_pyramids:" str = "men" end
if iy == 0 and str == "s" then out = "tsm_pyramids:" str = "3" end
if iy == 3 and str == "s" then out = "tsm_pyramids:" str = "2" end
if str == "a" then out = "" end
return out..code[str]
return out..code_table[str]
end
local function replace2(str,iy)
local function replace2(str, iy, code_table)
local out = "default:"
if iy == 0 and str == "l" then out = "tsm_pyramids:" str = "t"
elseif iy < 3 and str == "l" then str = "a" end
if str == "a" then out = "" end
return out..code[str]
return out..code_table[str]
end
function pyramids.make_room(pos)
local loch = {x=pos.x+7,y=pos.y+5, z=pos.z+7}
function pyramids.make_room(pos, stype)
local code_table = code_sandstone
if stype == "desert" then
code_table = code_desert
end
local hole = {x=pos.x+7,y=pos.y+5, z=pos.z+7}
for iy=0,4,1 do
for ix=0,8,1 do
for iz=0,8,1 do
@ -56,22 +67,26 @@ function pyramids.make_room(pos)
local p2 = 0
if n_str == "c" then
if ix < 3 then p2 = 1 else p2 = 3 end
pyramids.fill_chest({x=loch.x+ix,y=loch.y-iy,z=loch.z+iz})
pyramids.fill_chest({x=hole.x+ix,y=hole.y-iy,z=hole.z+iz})
end
minetest.set_node({x=loch.x+ix,y=loch.y-iy,z=loch.z+iz}, {name=replace(n_str,iy), param2=p2})
minetest.set_node({x=hole.x+ix,y=hole.y-iy,z=hole.z+iz}, {name=replace(n_str, iy, code_table), param2=p2})
end
end
end
end
function pyramids.make_traps(pos)
local loch = {x=pos.x+7,y=pos.y, z=pos.z+7}
function pyramids.make_traps(pos, stype)
local code_table = code_sandstone
if stype == "desert" then
code_table = code_desert
end
local hole = {x=pos.x+7,y=pos.y, z=pos.z+7}
for iy=0,4,1 do
for ix=0,8,1 do
for iz=0,8,1 do
local n_str = trap[tonumber(ix*9+iz+1)]
local p2 = 0
minetest.set_node({x=loch.x+ix,y=loch.y-iy,z=loch.z+iz}, {name=replace2(n_str,iy), param2=p2})
minetest.set_node({x=hole.x+ix,y=hole.y-iy,z=hole.z+iz}, {name=replace2(n_str, iy, code_table), param2=p2})
end
end
end