From 0b0deec9a010251f9242bf0678503cb62c773d87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Brada?= Date: Tue, 30 Jun 2015 13:48:02 +0200 Subject: [PATCH] Pipe deposit registration function. --- depositgen/init.lua | 2 +- {rocks => depositgen}/pipes.lua | 74 +++++++++++++++++++-------------- 2 files changed, 43 insertions(+), 33 deletions(-) rename {rocks => depositgen}/pipes.lua (73%) diff --git a/depositgen/init.lua b/depositgen/init.lua index c38aeeb..2ec6e26 100644 --- a/depositgen/init.lua +++ b/depositgen/init.lua @@ -15,7 +15,7 @@ l.OnInit={} l.ToResolve={} local includes={ -"pipes","veins","layers" +"pipes","veins" } minetest.register_on_generated(function(minp,maxp,seed) diff --git a/rocks/pipes.lua b/depositgen/pipes.lua similarity index 73% rename from rocks/pipes.lua rename to depositgen/pipes.lua index de76777..5de829b 100644 --- a/rocks/pipes.lua +++ b/depositgen/pipes.lua @@ -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() @@ -93,4 +101,6 @@ 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 \ No newline at end of file +end + +table.insert(depositgen.l.OnGenerate,generate)