1
0
mirror of git://repo.or.cz/rocks.git synced 2025-02-22 14:50:30 +01:00

Pipe deposit registration function.

This commit is contained in:
Tomáš Brada 2015-06-30 13:48:02 +02:00
parent 9b9419f2eb
commit 0b0deec9a0
2 changed files with 43 additions and 33 deletions

View File

@ -15,7 +15,7 @@ l.OnInit={}
l.ToResolve={}
local includes={
"pipes","veins","layers"
"pipes","veins"
}
minetest.register_on_generated(function(minp,maxp,seed)

View File

@ -1,4 +1,41 @@
-- experimental slow pipe generator
-- experimental pipe generator
-- the public table of registered pipes
depositgen.pipes={}
local regs=depositgen.pipes
depositgen.register_pipe= function(descr)
local pipe={
ymin=(descr.ymin or -10000),
ymax=(descr.ymax or 200),
scarcity=descr.scarcity,
radius=descr.radius,
content={ name=descr.content },
scatter={}
}
table.insert(depositgen.l.ToResolve,pipe.content)
for _,sc in pairs(descr.scatter) do
local psc={
scarcity=sc.scarcity,
size=(sc.size or pipe.radius),
density=sc.density,
content={ name=sc.content }
}
table.insert(depositgen.l.ToResolve,psc.content)
table.insert(pipe.scatter,psc)
end
return table.insert(regs,pipe)
end
depositgen.register_pipe({
ymin=-200, ymax=-6,
scarcity=80,
radius=3,
content="default:wood",
scatter={
{ scarcity=7, density=4, content="default:mese" }
}
})
local function brush(data,area,pos,radius,content,ores,pr)
local rsq=radius^2
@ -25,36 +62,7 @@ local function brush(data,area,pos,radius,content,ores,pr)
end end end
end
-- the public table of registered pipes
rocks.pipes={}
local examplepipe={
bedrock={ "rocks:limestone" },
startrock={ "rocks:limestone" },
ymin=-200, ymax=-6,
scarcity=80,
radius=3,
content="default:wood",
scatter=
{
{ scarcity=7, density=4, ore="default:mese", cnt=0},
},
}
table.insert(rocks.pipes,examplepipe)
--profiling
table.insert(rocks.pipes,{
bedrock={ "rocks:limestone" },
startrock={ "rocks:limestone" },
ymin=-200, ymax=-6,
scarcity=80,
radius=3,
content="default:dirt",
scatter=
{
{ scarcity=5, density=4, ore="default:mese", cnt=0},
},
})
rocksl.genpipe=function(minp,maxp,pr,vm,area,descr)
local function generate(minp,maxp,pr,vm,area,descr)
local t1 = os.clock()
local data = vm:get_data()
@ -94,3 +102,5 @@ rocksl.genpipe=function(minp,maxp,pr,vm,area,descr)
vm:set_data(data)
minetest.log("action", "rocks/genpipe/ "..math.ceil((os.clock() - t1) * 1000).." ms ")
end
table.insert(depositgen.l.OnGenerate,generate)