Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. --note to self: metadata - block, damage - item
  2. function compareBlocks(data1, data2)
  3. return (data1.name == data2.name and data1.metadata == data2.metadata)
  4. end
  5.  
  6. function damageToMetadata(data)
  7. return {name = data.name, metadata = data.damage}
  8. end
  9.  
  10. function selectItem(name)
  11. for i = 1, 16 do
  12. turtle.select(i)
  13. if turtle.getItemCount() > 0 then
  14. if turtle.getItemDetail().name == name then
  15. return true
  16. end
  17. end
  18. end
  19. return false
  20. end
  21.  
  22. function breakAllAbove()
  23. while turtle.detectUp() do
  24. turtle.digUp()
  25. turtle.up()
  26. end
  27. while not turtle.detectDown() do
  28. turtle.down()
  29. end
  30. end
  31.  
  32. function compareDown(compareData)
  33. local success, data = turtle.inspectDown()
  34. return (data.name == compareData.name and data.metadata == compareData.metadata)
  35. end
  36.  
  37. local arg = {...}
  38.  
  39. turtle.select(1)
  40. local block = damageToMetadata(turtle.getItemDetail())
  41. local size = tonumber(arg[1])
  42. turtle.dig()
  43. turtle.forward()
  44. for y = 1, size do
  45. for x = 1, size do
  46. if not compareDown(block) then
  47. turtle.digDown()
  48. selectItem(block.name)
  49. turtle.placeDown()
  50. end
  51. breakAllAbove()
  52. if x < size then
  53. turtle.dig()
  54. turtle.forward()
  55. end
  56. end
  57. if y < size then
  58. local direction = (y % 2 == 0)
  59. if direction then
  60. turtle.turnLeft()
  61. else
  62. turtle.turnRight()
  63. end
  64. turtle.dig()
  65. turtle.forward()
  66. if direction then
  67. turtle.turnLeft()
  68. else
  69. turtle.turnRight()
  70. end
  71. end
  72. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement