remove mapblocks from the queue early if they have no surfaces to work on

(sadly can't be done for blocks in the deferred queue until
they come out of "idle")
This commit is contained in:
Vanessa Dannenberg 2021-04-16 11:50:41 -04:00
parent f165434a84
commit 2dbacae561
1 changed files with 7 additions and 2 deletions

View File

@ -511,8 +511,13 @@ function biome_lib.generate_block(shutting_down)
biome_lib.pos_hash.surface_node_list = airflag
and minetest.find_nodes_in_area_under_air(minp, maxp, biome_lib.surfaceslist_aircheck)
or minetest.find_nodes_in_area(minp, maxp, biome_lib.surfaceslist_no_aircheck)
biome_lib.pos_hash.action_index = 1
if #biome_lib.pos_hash.surface_node_list > 0 then
if #biome_lib.pos_hash.surface_node_list == 0 then
biome_lib.dbg("Mapblock at "..minetest.pos_to_string(minp).." dequeued: no detected surfaces.", 4)
table.remove(blocklog, 1)
biome_lib.pos_hash = nil
return
else
biome_lib.pos_hash.action_index = 1
biome_lib.dbg("Mapblock at "..minetest.pos_to_string(minp)..
" has "..#biome_lib.pos_hash.surface_node_list..
" surface nodes to work on (airflag="..dump(airflag)..")", 4)