scan()
Syntax
scan(center, range, upper_range, expr)
Evaluates expression over area of blocks defined by its center
center = (cx, cy, cz), expanded in all directions by range = (dx, dy, dz)
blocks, or optionally in negative with range coords, and upper_range coords
in positive values. That means that if you want a box starting at the northwest
coord with given base, width and height dimensions, you can do
'scan(center, 0, 0, 0, w, h, d, ...).
center can be defined either as three coordinates, a single tuple of three
coords, or a block value. range and upper_range can have the same
representations, just if they are block values, it computes the distance to the
center as range instead of taking the values as is. That way you can iterate
from the center to a box whose surface area constains the range and/or
upper_range blocks.
expr receives _x, _y, _z variables as coords of current analyzed block and
_, which represents the block itself.
Returns number of successful evaluations of expr (with true boolean result)
unless called in void context, which would cause the expression not be evaluated
for their boolean value.
scan also handles continue and break statements, using continue’s return
value to use in place of expression return value. break return value has no
effect.