local grid = { --render = function(items) -- local jml = '' -- local gridsize = tonumber( app.opts.plugin_openbrush_layout_grid_size ) -- for i,v in pairs(items) do -- local url = v.redirect and v.redirect or v.url -- local pos = {x=0,y=0,z=0} -- local posStr = pos.x .. ' ' .. pos.y .. ' ' .. pos.z -- jml = jml .. ' \n' -- end -- return jml --end render = function(items) local jml = '' -- Distance between items in meters. gridsize = 5 means 5m x 5m spacing. local gridsize = tonumber(app.opts.plugin_openbrush_layout_grid_size) or 5 -- Square spiral: Start at (0, 0) right, up, left, down, increasing the step length local x = 0 local z = 0 local dx = 1 local dz = 0 local steps = 1 local stepsTaken = 0 local turns = 0 local index = 0 for i, v in pairs(items) do local url = v.redirect and v.redirect or v.url -- Position current item local pos = { x = v.title:match("#overlay") and 0 or x * gridsize, y = 0, z = v.title:match("#overlay") and 0 or z * gridsize } local posStr = pos.x .. ' ' .. pos.y .. ' ' .. pos.z local is_nested_room = false if is_nested_room then jml = jml .. ' \n' else jml = jml .. ' \n' end index = index + 1 -- Move to next position in the spiral if index < #items then x = x + dx z = z + dz stepsTaken = stepsTaken + 1 if stepsTaken == steps then stepsTaken = 0 -- Rotate clockwise: right -> up -> left -> down local oldDx = dx dx = -dz dz = oldDx turns = turns + 1 -- Increase the length after every second turn if turns % 2 == 0 then steps = steps + 1 end end end end return jml end } return grid