Advertisement
dzoni129

holz

Aug 25th, 2019
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.00 KB | None | 0 0
  1. function selectItem(name)
  2.     for i=1,16 do
  3.         local data = turtle.getItemDetail(i)
  4.         if data and data.name == ("minecraft:"..name) then
  5.             turtle.select(i)
  6.             return
  7.         end
  8.     end
  9. end
  10.  
  11. function transferItemsToSlot(name, slot)
  12.     for i=1,16 do
  13.         local data = turtle.getItemDetail(i)
  14.         if data and data.name == ("minecraft:"..name) then
  15.             turtle.select(i)
  16.             turtle.transferTo(slot)
  17.         end
  18.     end
  19. end
  20.  
  21. function farm(count, farmingItem, skipFirstForward)
  22.   for i=1,count do
  23.  
  24.     if not(skipFirstForward==true and i == 1) then
  25.         turtle.forward()
  26.     end
  27.       -- Wenn kein Sapling bereits platziert ist, diesen platzieren
  28.       local success, data = turtle.inspectDown()
  29.       if not success then
  30.         placeDownItem(farmingItem)
  31.     elseif data.metadata == 7 then
  32.       turtle.digDown()
  33.       placeDownItem(farmingItem)
  34.       end
  35.   end
  36. end
  37.  
  38. function placeDownItem(farmingItem)
  39.   local data = turtle.getItemDetail()
  40.  
  41.   if not data or data.name ~= ("minecraft:"..farmingItem) then
  42.     selectItem(farmingItem)
  43.   end
  44.  
  45.   data = turtle.getItemDetail()
  46.  
  47.   if not data or data.name ~= ("minecraft:"..farmingItem) then
  48.     return
  49.   end
  50.  
  51.   turtle.placeDown()
  52. end
  53.  
  54. function forwardX(x)
  55.     for i=1,x do
  56.         turtle.forward()
  57.     end
  58. end
  59.  
  60. function farmMultipleRows(rowLength, rowCount, farmingItem, skipFirstForward, lastRun)
  61.     for i=1,rowCount do
  62.         farm(rowLength, farmingItem, skipFirstForward)
  63.  
  64.         local left = i % 2 == 0
  65.  
  66.     if lastRun and i == rowCount then
  67.       left = not left
  68.     end
  69.  
  70.         if left then
  71.             turtle.turnLeft()
  72.         else
  73.             turtle.turnRight()
  74.         end
  75.         turtle.forward()
  76.     if i < rowCount then
  77.           if left then
  78.               turtle.turnLeft()
  79.           else
  80.               turtle.turnRight()
  81.           end
  82.     end
  83.         skipFirstForward = true
  84.     end
  85. end
  86.  
  87. function farmTree(destroyOtherBlock)
  88.   -- Nach vorne
  89.   local success, data = turtle.inspect()
  90.   if success and (data.name == "minecraft:log" or data.name == "minecraft:leaves") then
  91.     turtle.dig()
  92.     turtle.forward()
  93.     farmTree(false)
  94.     turtle.back()
  95.     local itemdetail = turtle.getItemDetail()
  96.     if itemdetail and itemdetail.name == "minecraft:sapling"  then
  97.       turtle.place()
  98.     end
  99.   elseif destroyOtherBlock and not (success and data.name == "minecraft:sapling") then
  100.     if success then
  101.       turtle.dig()
  102.     end
  103.     local itemdetail = turtle.getItemDetail()
  104.     if itemdetail and itemdetail.name == "minecraft:sapling"  then
  105.       turtle.place()
  106.     end
  107.   end
  108.  
  109.   -- Nach oben
  110.   local success, data = turtle.inspectUp()
  111.   if success and (data.name == "minecraft:log" or data.name == "minecraft:leaves") then
  112.     turtle.digUp()
  113.     turtle.up()
  114.     farmTree(false)
  115.     turtle.down()
  116.   end
  117.  
  118.   -- Nach links
  119.   turtle.turnLeft()
  120.   local success, data = turtle.inspect()
  121.   if success and (data.name == "minecraft:log" or data.name == "minecraft:leaves") then
  122.     turtle.dig()
  123.     turtle.forward()
  124.     farmTree(false)
  125.     turtle.back()
  126.   end
  127.  
  128.     -- Nach hinten
  129.   turtle.turnLeft()
  130.   local success, data = turtle.inspect()
  131.   if success and (data.name == "minecraft:log" or data.name == "minecraft:leaves") then
  132.     turtle.dig()
  133.     turtle.forward()
  134.     farmTree(false)
  135.     turtle.back()
  136.   end
  137.  
  138.   -- Nach rechts
  139.   turtle.turnLeft()
  140.   local success, data = turtle.inspect()
  141.   if success and (data.name == "minecraft:log" or data.name == "minecraft:leaves") then
  142.     turtle.dig()
  143.     turtle.forward()
  144.     farmTree(false)
  145.     turtle.back()
  146.   end
  147.  
  148.   -- grade stehen
  149.   turtle.turnLeft()
  150.  
  151.   -- Nach unten
  152.   local success, data = turtle.inspectDown()
  153.   if success and (data.name == "minecraft:log" or data.name == "minecraft:leaves") then
  154.     turtle.digDown()
  155.     turtle.down()
  156.     farmTree(false)
  157.     turtle.up()
  158.   end
  159. end
  160.  
  161. function farmRow()
  162.   turtle.turnLeft()
  163.   farmTree(true)
  164.   turtle.turnRight()
  165.   turtle.turnRight()
  166.   farmTree(true)
  167.   turtle.turnLeft()
  168. end
  169.  
  170. local rows = 12
  171. while true do
  172.   selectItem("sapling")
  173.   forwardX(rows)
  174.   farmRow()
  175.   for i=1,rows do
  176.     turtle.back()
  177.     farmRow()
  178.   end
  179.   sleep(120)
  180. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement