1
0
镜像自地址 git://repo.or.cz/rocks.git 已同步 2025-09-15 12:45:25 +02:00

New oregen init.

这个提交包含在:
Tomáš Brada
2015-06-30 13:29:11 +02:00
父节点 a9f2272127
当前提交 9b9419f2eb
共有 2 个文件被更改,包括 46 次插入42 次删除

46
depositgen/init.lua 普通文件
查看文件

@@ -0,0 +1,46 @@
depositgen={}
local l={}
depositgen.l=l
l.print=function(text)
minetest.log("info","[depositgen] "..text)
end
l.print("mod initializing")
local modpath=minetest.get_modpath(minetest.get_current_modname())
l.OnGenerate={}
l.OnInit={}
l.ToResolve={}
local includes={
"pipes","veins","layers"
}
minetest.register_on_generated(function(minp,maxp,seed)
local vm, emin, emax = minetest.get_mapgen_object("voxelmanip")
local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax}
local pr=PseudoRandom(seed)
for i=0, #l.OnGenerate do
l.OnGenerate[i](minp,maxp,seed,vm,area)
end
vm:write_to_map()
end)
minetest.register_on_mapgen_init(function(mapgen_params)
-- todo: disable caves and ores
-- todo: sort layers
--Resolve all mapgen nodes to content ids
l.print("Resolving node names")
for _,i in pairs(l.ToResolve) do
i.id=minetest.get_content_id(i.node)
i.node=nil --free some memory
end
l.print("running mapgen initialization tasks")
for _,i in pairs(l.OnInit) do
i(mapgen_params)
end
end)
for _,s in pairs(includes) do dofile(modpath.."/"..s..".lua") end