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:
parent
9b9419f2eb
commit
0b0deec9a0
@ -15,7 +15,7 @@ l.OnInit={}
|
||||
l.ToResolve={}
|
||||
|
||||
local includes={
|
||||
"pipes","veins","layers"
|
||||
"pipes","veins"
|
||||
}
|
||||
|
||||
minetest.register_on_generated(function(minp,maxp,seed)
|
||||
|
@ -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)
|
Loading…
x
Reference in New Issue
Block a user