Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function foo(itemstack, placer, pointer)
- local vm = minetest.get_voxel_manip()
- local rp1 = {
- x = pointer.above.x - 10,
- y = pointer.above.y - 10,
- z = pointer.above.z - 10
- }
- local rp2 = {
- x = pointer.above.x + 10,
- y = pointer.above.y + 10,
- z = pointer.above.z + 10
- }
- local c_cobble = minetest.get_content_id("default:mossycobble")
- local ep1, ep2 = vm:read_from_map(rp1, rp2)
- local data = vm:get_data()
- local a = VoxelArea:new{
- MinEdge={x=ep1.x, y=ep1.y, z=ep1.z},
- MaxEdge={x=ep2.x, y=ep2.y, z=ep2.z},
- }
- for z = rp1.z, rp2.z do
- for y = rp1.y, rp2.y do
- for x = rp1.x, rp2.x do
- local x0 = x - (rp1.x + rp2.x) / 2
- local y0 = y - (rp1.y + rp2.y) / 2
- local z0 = z - (rp1.z + rp2.z) / 2
- if x0*x0 + y0*y0 + z0*z0 <= 25 then
- local i = a:index(x, y, z)
- data[i] = c_cobble
- end
- end
- end
- end
- vm:set_data(data)
- vm:write_to_map()
- vm:update_map()
- return itemstack
- end
- minetest.register_craftitem("default:test", {
- inventory_image = "default_tool_steelaxe.png",
- on_place = foo
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement