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

Optimize generation callbacks.

This commit is contained in:
Tomáš Brada 2015-05-10 12:59:49 +02:00
parent 7574b0f463
commit b9ad0a251c
3 changed files with 12 additions and 10 deletions

View File

@ -34,10 +34,8 @@ local np_sp = {
local stats
stats={ total=0 }
rocksl.gensed = function (minp, maxp, seed)
rocksl.gensed = function (minp, maxp, seed, vm, area)
local t1 = os.clock()
local vm, emin, emax = minetest.get_mapgen_object("voxelmanip")
local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax}
local data = vm:get_data()
local chunksize = maxp.x - minp.x + 1
@ -160,7 +158,6 @@ rocksl.gensed = function (minp, maxp, seed)
end end
if generated then
vm:set_data(data)
vm:write_to_map(data)
if stats then for k,v in pairs(stats) do print("stat: "..k..": "..((v/stats.total)*100).."%") end end
else
print("no sed layer y="..minp.y)

View File

@ -91,10 +91,9 @@ local np_intr = {
seed = 3740,
}
minetest.register_on_generated( function( minp, maxp, seed )
--minetest.register_on_generated( function( minp, maxp, seed )
rocksl.genign=function(minp,maxp,seed, vm, area)
local t1 = os.clock()
local vm, emin, emax = minetest.get_mapgen_object("voxelmanip")
local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax}
local data = vm:get_data()
local chunksize = maxp.x - minp.x + 1
@ -137,9 +136,8 @@ minetest.register_on_generated( function( minp, maxp, seed )
vm:set_data(data)
--DEBUG: vm:set_lighting({day=15,night=2})
minetest.generate_ores(vm)
vm:write_to_map(data)
minetest.log("action", "rocks/layer/ "..math.ceil((os.clock() - t1) * 1000).." ms ")
end)
end
-- ~ Tomas Brod

View File

@ -30,7 +30,14 @@ dofile(modpath.."/ign.lua")
dofile(modpath.."/skarn.lua")
dofile(modpath.."/pegmatite.lua")
dofile(modpath.."/gensed.lua")
minetest.register_on_generated(rocksl.gensed)
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}
rocksl.gensed(minp,maxp,seed,vm,area)
--rocksl.genign
vm:write_to_map(data)
end)
minetest.register_on_mapgen_init(function(mapgen_params)
-- todo: disable caves and ores