Advertisement
Guest User

Untitled

a guest
Jun 28th, 2013
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.06 KB | None | 0 0
  1.  
  2. function foo(itemstack, placer, pointer)
  3.     local vm = minetest.get_voxel_manip()
  4.  
  5.     local rp1 = {
  6.         x = pointer.above.x - 10,
  7.         y = pointer.above.y - 10,
  8.         z = pointer.above.z - 10
  9.     }
  10.  
  11.     local rp2 = {
  12.         x = pointer.above.x + 10,
  13.         y = pointer.above.y + 10,
  14.         z = pointer.above.z + 10
  15.     }
  16.  
  17.     local c_cobble = minetest.get_content_id("default:mossycobble")
  18.  
  19.     local ep1, ep2 = vm:read_from_map(rp1, rp2)
  20.     local data = vm:get_data()
  21.  
  22.     local a = VoxelArea:new{
  23.         MinEdge={x=ep1.x, y=ep1.y, z=ep1.z},
  24.         MaxEdge={x=ep2.x, y=ep2.y, z=ep2.z},
  25.     }
  26.  
  27.     for z = rp1.z, rp2.z do
  28.     for y = rp1.y, rp2.y do
  29.     for x = rp1.x, rp2.x do
  30.         local x0 = x - (rp1.x + rp2.x) / 2
  31.         local y0 = y - (rp1.y + rp2.y) / 2
  32.         local z0 = z - (rp1.z + rp2.z) / 2
  33.         if x0*x0 + y0*y0 + z0*z0 <= 25 then
  34.             local i = a:index(x, y, z)
  35.             data[i] = c_cobble
  36.         end
  37.     end
  38.     end
  39.     end
  40.  
  41.     vm:set_data(data)
  42.     vm:write_to_map()
  43.     vm:update_map()
  44.  
  45.     return itemstack
  46. end
  47.  
  48. minetest.register_craftitem("default:test", {
  49.     inventory_image = "default_tool_steelaxe.png",
  50.     on_place = foo
  51. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement