Distribute treasures more evenly across chests
This commit is contained in:
parent
d6bc045bbb
commit
d3187e4a08
2
init.lua
2
init.lua
|
@ -37,7 +37,7 @@ function tsm_pyramids.fill_chest(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
inv:set_size("main", 8*4)
|
inv:set_size("main", 8*4)
|
||||||
if math.random(1,10) <= 5 then
|
if math.random(1,10) < 7 then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local stacks = {}
|
local stacks = {}
|
||||||
|
|
34
room.lua
34
room.lua
|
@ -247,21 +247,6 @@ local room_types = {
|
||||||
" "," "," "," "," "," "," "," "," ",
|
" "," "," "," "," "," "," "," "," ",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
-- simple
|
|
||||||
{
|
|
||||||
style = "yrepeat",
|
|
||||||
layout = {
|
|
||||||
" "," "," "," "," "," "," "," ","<",
|
|
||||||
" "," "," "," "," "," "," "," ","<",
|
|
||||||
" "," "," "," "," "," "," "," ","<",
|
|
||||||
" "," "," "," "," "," "," "," ","<",
|
|
||||||
" "," "," "," "," "," "," "," "," ",
|
|
||||||
" "," "," "," "," "," "," "," ","<",
|
|
||||||
" "," "," "," "," "," "," "," ","<",
|
|
||||||
" "," "," "," "," "," "," "," ","<",
|
|
||||||
" "," "," "," "," "," "," "," ","<",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- big pillar
|
-- big pillar
|
||||||
{
|
{
|
||||||
style = "yrepeat",
|
style = "yrepeat",
|
||||||
|
@ -617,6 +602,7 @@ function tsm_pyramids.make_room(pos, stype, room_id)
|
||||||
return false, S("Incorrect room type ID: @1", room_id)
|
return false, S("Incorrect room type ID: @1", room_id)
|
||||||
end
|
end
|
||||||
local room = room_types[room_id]
|
local room = room_types[room_id]
|
||||||
|
local chests = {}
|
||||||
if room.style == "yrepeat" then
|
if room.style == "yrepeat" then
|
||||||
for iy=0,4,1 do
|
for iy=0,4,1 do
|
||||||
for ix=0,8,1 do
|
for ix=0,8,1 do
|
||||||
|
@ -632,14 +618,28 @@ function tsm_pyramids.make_room(pos, stype, room_id)
|
||||||
elseif n_str == "v" then
|
elseif n_str == "v" then
|
||||||
p2 = 3
|
p2 = 3
|
||||||
end
|
end
|
||||||
tsm_pyramids.fill_chest({x=hole.x+ix,y=hole.y-iy,z=hole.z+iz})
|
local cpos = {x=hole.x+ix,y=hole.y-iy,z=hole.z+iz}
|
||||||
minetest.set_node({x=hole.x+ix,y=hole.y-iy,z=hole.z+iz}, {name=replace(n_str, iy, code_table, deco), param2=p2})
|
local nn = replace(n_str, iy, code_table, deco)
|
||||||
|
minetest.set_node(cpos, {name=nn, param2=p2})
|
||||||
|
if nn == "default:chest" then
|
||||||
|
table.insert(chests, cpos)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
minetest.log("error", "Invalid pyramid room style! room type ID="..r)
|
minetest.log("error", "Invalid pyramid room style! room type ID="..r)
|
||||||
end
|
end
|
||||||
|
if #chests > 0 then
|
||||||
|
-- Make at least 8 attempts to fill chests
|
||||||
|
local filled = 0
|
||||||
|
while filled < 8 do
|
||||||
|
for c=1, #chests do
|
||||||
|
tsm_pyramids.fill_chest(chests[c])
|
||||||
|
filled = filled + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
if room.traps then
|
if room.traps then
|
||||||
tsm_pyramids.make_traps(pos, stype)
|
tsm_pyramids.make_traps(pos, stype)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user