optimize out table.insert() and ipairs() calls
move perlin1 (perlin_fertile_area) out of the inner loop
(it only needs to be inside the action loop)
local-ize the block cache table