added debug information for performance measurements
parent
f991862f8b
commit
0cf61c0955
27
mapgen.lua
27
mapgen.lua
|
@ -618,9 +618,16 @@ mg_villages.village_area_fill_with_plants = function( village_area, villages, mi
|
|||
end
|
||||
|
||||
|
||||
time_elapsed = function( t_last, msg )
|
||||
t_now = minetest.get_us_time();
|
||||
print( 'TIME ELAPSED: '..tostring( t_now - t_last )..' '..msg );
|
||||
return t_now;
|
||||
end
|
||||
|
||||
|
||||
mg_villages.place_villages_via_voxelmanip = function( villages, minp, maxp, vm, data, param2_data, a, top )
|
||||
local t1 = minetest.get_us_time();
|
||||
|
||||
local cid = {}
|
||||
cid.c_air = minetest.get_content_id( 'air' );
|
||||
cid.c_ignore = minetest.get_content_id( 'ignore' );
|
||||
|
@ -658,6 +665,7 @@ mg_villages.place_villages_via_voxelmanip = function( villages, minp, maxp, vm,
|
|||
cid.c_ethereal_clay_orange = minetest.get_content_id( 'bakedclay:orange' );
|
||||
end
|
||||
|
||||
t1 = time_elapsed( t1, 'defines' );
|
||||
--[[
|
||||
local centered_here = 0;
|
||||
for _,village in ipairs( villages ) do
|
||||
|
@ -683,9 +691,12 @@ mg_villages.place_villages_via_voxelmanip = function( villages, minp, maxp, vm,
|
|||
for village_nr, village in ipairs(villages) do
|
||||
-- generate the village structure: determine positions of buildings and roads
|
||||
mg_villages.generate_village( village, village_noise);
|
||||
t1 = time_elapsed( t1, 'generate_village' );
|
||||
|
||||
mg_villages.village_area_mark_buildings( village_area, village_nr, village.to_add_data.bpos );
|
||||
t1 = time_elapsed( t1, 'mark_buildings' );
|
||||
mg_villages.village_area_mark_dirt_roads( village_area, village_nr, village.to_add_data.dirt_roads );
|
||||
t1 = time_elapsed( t1, 'mark_dirt_roads' );
|
||||
end
|
||||
|
||||
-- if no voxelmanip data was passed on, read the data here
|
||||
|
@ -703,6 +714,7 @@ mg_villages.place_villages_via_voxelmanip = function( villages, minp, maxp, vm,
|
|||
data = vm:get_data()
|
||||
param2_data = vm:get_param2_data()
|
||||
end
|
||||
t1 = time_elapsed( t1, 'get_vmap_data' );
|
||||
|
||||
-- all vm manipulation functions write their content to the *entire* volume/area - including those 16 nodes that
|
||||
-- extend into neighbouring mapchunks; thus, cavegen griefing and mudflow can be repaired by placing everythiing again
|
||||
|
@ -714,9 +726,11 @@ mg_villages.place_villages_via_voxelmanip = function( villages, minp, maxp, vm,
|
|||
tmax = maxp;
|
||||
end
|
||||
mg_villages.village_area_mark_inside_village_area( village_area, villages, village_noise, tmin, tmax );
|
||||
t1 = time_elapsed( t1, 'mark_inside_village_area' );
|
||||
|
||||
-- determine optimal height for all villages that have their center in this mapchunk; sets village.optimal_height
|
||||
mg_villages.village_area_get_height( village_area, villages, tmin, tmax, data, param2_data, a, cid );
|
||||
t1 = time_elapsed( t1, 'get_height' );
|
||||
-- change height of those villages where an optimal_height could be determined
|
||||
local village_data_updated = false;
|
||||
for _,village in ipairs(villages) do
|
||||
|
@ -725,10 +739,13 @@ mg_villages.place_villages_via_voxelmanip = function( villages, minp, maxp, vm,
|
|||
village_data_updated = true;
|
||||
end
|
||||
end
|
||||
t1 = time_elapsed( t1, 'change_height' );
|
||||
|
||||
mg_villages.flatten_village_area( villages, village_noise, minp, maxp, vm, data, param2_data, a, village_area, cid );
|
||||
t1 = time_elapsed( t1, 'flatten_village_area' );
|
||||
-- repair cavegen griefings and mudflow which may have happened in the outer shell (which is part of other mapnodes)
|
||||
mg_villages.repair_outer_shell( villages, village_noise, tmin, tmax, vm, data, param2_data, a, village_area, cid );
|
||||
t1 = time_elapsed( t1, 'repair_outer_shell' );
|
||||
|
||||
local c_feldweg = minetest.get_content_id('cottages:feldweg');
|
||||
if( not( c_feldweg )) then
|
||||
|
@ -738,21 +755,27 @@ mg_villages.place_villages_via_voxelmanip = function( villages, minp, maxp, vm,
|
|||
for _, village in ipairs(villages) do
|
||||
|
||||
village.to_add_data = mg_villages.place_buildings( village, tmin, tmax, data, param2_data, a, village_noise);
|
||||
t1 = time_elapsed( t1, 'place_buildings' );
|
||||
|
||||
mg_villages.place_dirt_roads( village, tmin, tmax, data, param2_data, a, village_noise, c_feldweg);
|
||||
t1 = time_elapsed( t1, 'place_dirt_roads' );
|
||||
end
|
||||
|
||||
mg_villages.village_area_fill_with_plants( village_area, villages, tmin, tmax, data, param2_data, a, cid );
|
||||
t1 = time_elapsed( t1, 'fill_with_plants' );
|
||||
|
||||
vm:set_data(data)
|
||||
vm:set_param2_data(param2_data)
|
||||
t1 = time_elapsed( t1, 'vm data set' );
|
||||
|
||||
vm:calc_lighting(
|
||||
{x=minp.x-16, y=minp.y, z=minp.z-16},
|
||||
{x=maxp.x+16, y=maxp.y, z=maxp.z+16}
|
||||
)
|
||||
t1 = time_elapsed( t1, 'vm calc lighting' );
|
||||
|
||||
vm:write_to_map(data)
|
||||
t1 = time_elapsed( t1, 'vm data written' );
|
||||
|
||||
-- initialize the pseudo random generator so that the chests will be filled in a reproducable pattern
|
||||
local pr = PseudoRandom(mg_villages.get_bseed(minp));
|
||||
|
@ -786,9 +809,11 @@ mg_villages.place_villages_via_voxelmanip = function( villages, minp, maxp, vm,
|
|||
end
|
||||
end
|
||||
end
|
||||
t1 = time_elapsed( t1, 'metadata..' );
|
||||
|
||||
-- now add those buildings which are .mts files and need to be placed by minetest.place_schematic(...)
|
||||
mg_villages.place_schematics( village.to_add_data.bpos, village.to_add_data.replacements, a, pr );
|
||||
t1 = time_elapsed( t1, 'place_schematics' );
|
||||
|
||||
if( not( mg_villages.all_villages )) then
|
||||
mg_villages.all_villages = {};
|
||||
|
@ -814,6 +839,8 @@ mg_villages.place_villages_via_voxelmanip = function( villages, minp, maxp, vm,
|
|||
if( village_data_updated ) then
|
||||
save_restore.save_data( 'mg_all_villages.data', mg_villages.all_villages );
|
||||
end
|
||||
t1 = time_elapsed( t1, 'save village data' );
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue