Advertisement
Axow01

treescript_turtle

Aug 13th, 2023 (edited)
1,110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.05 KB | None | 0 0
  1.  
  2. local sidesInfo = {down = nil, up = nil, left = nil, right = nil, front = nil}
  3. local sidesMine = {down = 0, up = 0, left = 0, right = 0, front = 0}
  4.  
  5. rednet.open("right")
  6. local senderId, message, protocol = rednet.receive("turtle_wood_cutting", 120)
  7. rednet.close("right")
  8. if (message == null) then
  9.     term.blip("Error did not receive autorisation.", colors.red, colors.black)
  10.     exit()
  11. end
  12.  
  13.  
  14.  
  15. local function inspectSides()
  16.     local suss, data = turtle.inspect()
  17.     sidesInfo.front = data.name
  18.     suss, data = turtle.inspectDown()
  19.     sidesInfo.down = data.name
  20.     suss, data = turtle.inspectUp()
  21.     sidesInfo.up = data.name
  22.     turtle.turnLeft()
  23.     suss, data = turtle.inspect()
  24.     sidesInfo.left = data.name
  25.     turtle.turnRight()
  26.     turtle.turnRight()
  27.     suss, data = turtle.inspect()
  28.     sidesInfo.right = data.name
  29.     turtle.turnLeft()
  30. end
  31.  
  32. local function resetMine()
  33.     for key, value in pairs(sidesMine) do
  34.         sidesMine[key] = 0
  35.     end
  36. end
  37.  
  38. local function containWood()
  39.     inspectSides()
  40.     for key, value in pairs(sidesInfo) do
  41.         if (value == "minecraft:log") then sidesMine[key] = 1 end
  42.     end
  43.     for key, value in pairs(sidesMine) do
  44.         if (value == 1) then return true end
  45.     end
  46.     return false
  47. end
  48.  
  49. local function minelayer()
  50.     print("here")
  51.     if (sidesMine.up > 0) then
  52.         turtle.digUp()
  53.         turtle.up()
  54.         sidesMine.up = 0
  55.     end
  56.     if (sidesMine.down > 0) then
  57.         turtle.digDown()
  58.         turtle.down()
  59.         sidesMine.down = 0
  60.     end
  61.     if (sidesMine.front > 0) then
  62.         turtle.dig()
  63.         turtle.forward()
  64.         sidesMine.front = 0
  65.     end
  66.     if (sidesMine.left > 0) then
  67.         turtle.turnLeft()
  68.         turtle.dig()
  69.         turtle.forward()
  70.         turtle.turnRight()
  71.         sidesMine.left = 0
  72.     end
  73.     if (sidesMine.right > 0) then
  74.         turtle.turnRight()
  75.         turtle.dig()
  76.         turtle.forward()
  77.         turtle.turnLeft()
  78.         sidesMine.right = 0
  79.     end
  80.     resetMine()
  81. end
  82.  
  83. local function mine()
  84.     while (containWood()) do
  85.         minelayer()
  86.     end
  87. end
  88.  
  89. local function emptyChest()
  90.     while(turtle.down()) do end
  91.     turtle.select(15)
  92.     if (turtle.detect()) then
  93.         turtle.dig()
  94.     end
  95.     turtle.place()
  96.     for i = 1, 16 do
  97.         turtle.select(i)
  98.         local data = turtle.getItemDetail(i)
  99.         if (data ~= nil) then
  100.             if (data.name ~= "minecraft:log") then
  101.                 turtle.drop()
  102.             end
  103.         end
  104.     end
  105. end
  106.  
  107. local function craftPlanks()
  108.     while(turtle.down()) do end
  109.     turtle.select(16)
  110.     turtle.equipLeft()
  111.     emptyChest()
  112.     turtle.drop()
  113.     turtle.select(1)
  114.     turtle.craft()
  115.     while (turtle.suck()) do end
  116.     for i = 1, 16 do
  117.         local data = turtle.getItemDetail(i)
  118.         if (data ~= nil) then
  119.             if (data.name == "minecraft:diamond_axe") then
  120.                 turtle.select(i)
  121.                 turtle.transferTo(16)
  122.             elseif(data.name == "minecraft:chest") then
  123.                 turtle.select(i)
  124.                 turtle.transferTo(15)
  125.             end
  126.         end
  127.     end
  128.     turtle.select(16)
  129.     turtle.equipLeft()
  130.     turtle.select(15)
  131.     turtle.dig()
  132.     turtle.select(1)
  133. end
  134.  
  135. turtle.select(1)
  136. mine()
  137. craftPlanks()
  138.  
  139. rednet.open("right")
  140. rednet.send(senderId, "done", "turtle_wood_cutting")
  141. rednet.close("right")
  142.  
  143. term.setCursorPos(3, 3)
  144. -- term.clear()
  145. term.setTextColor(colors.green)
  146. term.write("Done.")
  147. term.setTextColor(colors.white)
  148.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement