-- robot can construct classic fractals like menger sponge, jerusalem cube, sierpinski triangles,.. -- use: build a pattern at position 1,1,1 relative to robot. when run robot will analyse pattern and construct fractal if not init then minetest.forceload_block(self.pos(),true) init = true; local spos = self.spawnpos(); offsets = {["default:dirt"] = 0, ["default:wood"] = -1, ["default:cobble"] = 1} read_form = function(fractal) -- read shape from world local form = {}; local i = 0; local spos = self.spawnpos(); spos.x = spos.x+1;spos.y = spos.y+1;spos.z = spos.z+1; local nx = 0; local ny = 0; local nz = 0; fractal.form = {} for x = 0,fractal.nx-1 do for y = 0,fractal.ny-1 do for z = 0,fractal.nz-1 do local node = _G.minetest.get_node({x=spos.x+x,y=spos.y+y,z=spos.z+z}).name; local offset = offsets[node] or 0; if node~= "air" then form[i] = {x,y,z,offset}; i=i+1 if nx