Advertisement
Blackhome

AreaBuilder

Jan 26th, 2025
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.28 KB | Gaming | 0 0
  1. areaX, areaY = ...
  2.  
  3. local move = require("move1")
  4.  
  5. if not areaX then
  6.     areaX = 19
  7. end
  8. if not areaY then
  9.     areaY = 19
  10. end
  11.  
  12. local turtlePos = {0, 0, 0}
  13. local turtleLastPos = {turtlePos[1], turtlePos[2], turtlePos[3]}
  14.  
  15. local turtleVec = {1, 0}
  16. local turtleLastVec = {turtleVec[1], turtleVec[2]}
  17.  
  18. local workMode = 1
  19.  
  20. local function forward()
  21.     move.Forward()
  22.     turtlePos[1] = turtlePos[1] + turtleVec[1]
  23.     turtlePos[2] = turtlePos[2] + turtleVec[2]
  24. end
  25. local function upward()
  26.     move.Up()
  27.     turtlePos[3] = turtlePos[3] + 1
  28. end
  29. local function downward()
  30.     move.Down()
  31.     turtlePos[3] = turtlePos[3] - 1
  32. end
  33. local function turnLeft()
  34.     turtle.turnLeft()
  35.     local buffer = turtleVec[1]
  36.     turtleVec[1] = turtleVec[2]
  37.     turtleVec[2] = -buffer
  38. end
  39. local function turnRight()
  40.     turtle.turnRight()
  41.     local buffer = turtleVec[1]
  42.     turtleVec[1] = -turtleVec[2]
  43.     turtleVec[2] = buffer
  44. end
  45.  
  46. local function varInArr(var, arr)
  47.     for i = 1, #arr, 1 do
  48.         if var == arr[i] then
  49.             return true
  50.         end
  51.     end
  52.     return false
  53. end
  54.  
  55. local function selectItemFromList(itemList)
  56.     local itemA = turtle.getItemDetail()
  57.     if itemA then
  58.         if varInArr(itemA.name, itemList) then
  59.             return true
  60.         end
  61.     end
  62.  
  63.     for i=1, 16, 1 do
  64.         if turtle.getItemCount(i) > 0 then
  65.             turtle.select(i)
  66.             local itemB = turtle.getItemDetail()
  67.             if itemB then
  68.                 if varInArr(itemB.name, itemList) then
  69.                     return true
  70.                 end
  71.             end
  72.         end
  73.     end
  74.     return false
  75. end
  76.  
  77. local function goToStart()
  78.     if workMode == 1 then
  79.         turtleLastPos = {turtlePos[1], turtlePos[2], turtlePos[3]}
  80.         turtleLastVec = {turtleVec[1], turtleVec[2]}
  81.         workMode = 2
  82.     end
  83.  
  84.     while turtleVec[1] > -1 do
  85.         turnRight()
  86.     end
  87.     if (turtlePos[1] + turtlePos[2] + math.abs(turtlePos[3])) > 0 then
  88.         while turtlePos[1] > 0 do
  89.             forward()
  90.         end
  91.         turnRight()
  92.         while turtlePos[2] > 0 do
  93.             forward()
  94.         end
  95.         turnLeft()
  96.         while turtlePos[3] > 0 do
  97.             downward()
  98.         end
  99.         while turtlePos[3] < 0 do
  100.             upward()
  101.         end
  102.     end
  103.     turnLeft()
  104.     turnLeft()
  105. end
  106.  
  107. local materialList = { "minecraft:cobblestone"}
  108.  
  109. turtle.placeDown()
  110. while turtlePos[2] < areaY do
  111.     if (turtlePos[2] % 2) == 0 then
  112.         while turtlePos[1] < areaX - 1 do
  113.             forward()
  114.             selectItemFromList(materialList)
  115.             turtle.placeDown()
  116.         end
  117.         if not (turtlePos[2] == areaY - 1) then
  118.             turnRight()
  119.             forward()
  120.             selectItemFromList(materialList)
  121.             turtle.placeDown()
  122.             turnRight()
  123.         else
  124.             break
  125.         end
  126.     else
  127.         while turtlePos[1] > 0 do
  128.             forward()
  129.             selectItemFromList(materialList)
  130.             turtle.placeDown()
  131.         end
  132.         if not (turtlePos[2] == areaY - 1) then
  133.             turnLeft()
  134.             forward()
  135.             selectItemFromList(materialList)
  136.             turtle.placeDown()
  137.             turnLeft()
  138.         else
  139.             break
  140.         end
  141.     end
  142. end
  143.  
  144. goToStart()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement