Speed up specific node checks

This commit is contained in:
TenPlus1 2015-11-15 21:17:28 +00:00
parent bc2b58ab8e
commit d025784f30
4 changed files with 7 additions and 7 deletions

View File

@ -73,7 +73,7 @@ minetest.register_abm({
local count_grasses = {}
local curr_max = 0
local curr_type = "ethereal:green_dirt" -- fallback
local positions = minetest.find_nodes_in_area(
local positions = minetest.find_nodes_in_area_under_air(
{x = (pos.x - 2), y = (pos.y - 1), z = (pos.z - 2)},
{x = (pos.x + 2), y = (pos.y + 1), z = (pos.z + 2)},
"group:ethereal_grass")

View File

@ -308,7 +308,7 @@ minetest.register_on_generated(function(minp, maxp)
return
end
local bpos
for key, pos in pairs(minetest.find_nodes_in_area(minp, maxp, "default:stone_with_coal")) do
for key, pos in pairs(minetest.find_nodes_in_area_under_air(minp, maxp, "default:stone_with_coal")) do
bpos = {x = pos.x, y = pos.y + 1, z = pos.z }
if minetest.get_node(bpos).name == "air" then
if bpos.y > -3000 and bpos.y < -2000 then

View File

@ -16,10 +16,10 @@ minetest.register_abm({
local pos0 = {x = pos.x - 4, y = pos.y - 2, z = pos.z - 4}
local pos1 = {x = pos.x + 4, y = pos.y + 2, z = pos.z + 4}
if #minetest.find_nodes_in_area(pos0, pos1, "group:flora") > 3 then
if #minetest.find_nodes_in_area_under_air(pos0, pos1, "group:flora") > 3 then
local grass = minetest.find_nodes_in_area(pos0, pos1, {"ethereal:crystalgrass"})
local crystal = minetest.find_nodes_in_area(pos0, pos1, {"ethereal:crystal_spike"})
local grass = minetest.find_nodes_in_area_under_air(pos0, pos1, {"ethereal:crystalgrass"})
local crystal = minetest.find_nodes_in_area_under_air(pos0, pos1, {"ethereal:crystal_spike"})
if #grass > 6 and #crystal < 1 then
grass = grass[math.random(#grass)]
@ -33,7 +33,7 @@ minetest.register_abm({
return
end
local seedling = minetest.find_nodes_in_area(pos0, pos1, {"group:soil"})
local seedling = minetest.find_nodes_in_area_under_air(pos0, pos1, {"group:soil"})
if #seedling > 0 then
seedling = seedling[math.random(#seedling)]

View File

@ -62,7 +62,7 @@ minetest.register_abm({
chance = 4,
catch_up = false,
action = function(pos, node)
local water = minetest.find_nodes_in_area(
local water = minetest.find_nodes_in_area_under_air(
{x = pos.x - 1, y = pos.y - 1, z = pos.z - 1},
{x = pos.x + 1, y = pos.y + 1, z = pos.z + 1},
{"default:water_source", "default:river_water_source"})