Simlor_GER

Simple Reverse Turtle Query

Nov 10th, 2021 (edited)
351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.41 KB | None | 0 0
  1. querySize = {
  2.   length = 40,
  3.   width = 40,
  4.   height = 20
  5. }
  6.  
  7. currentPos = {
  8.   x = 0,
  9.   y = 0,
  10.   z = 0
  11. }
  12.  
  13. turtle.refuel()
  14.  
  15. function forward()
  16.   while turtle.detect() do
  17.     turtle.dig()
  18.   end
  19.   turtle.forward()
  20. end
  21.  
  22. function up()
  23.   while turtle.detectUp() do
  24.     turtle.digUp()
  25.   end
  26.   turtle.up()
  27. end
  28.  
  29. function down()
  30.   while turtle.detectDown() do
  31.     turtle.digDown()
  32.   end
  33.   turtle.down()
  34. end
  35.  
  36. function inventarVoll()
  37.   local itemCount = 0
  38.   for c=1, 16 do
  39.     if turtle.getItemDetail(c) then
  40.       itemCount = itemCount + 1
  41.     end
  42.   end
  43.   if itemCount < 16 then
  44.     return false
  45.   end
  46.   return true
  47. end
  48.  
  49. function checkInFront()
  50.   return turtle.detect()
  51. end
  52.  
  53. function returnToWork()
  54.   if currentPos.x > 0 then
  55.     turtle.turnRight()
  56.  
  57.     for c=1, currentPos.x do
  58.       forward()
  59.     end
  60.  
  61.     turtle.turnLeft()
  62.   end
  63.  
  64.   if currentPos.z > 0 then
  65.     for c=1, currentPos.z do
  66.       forward()
  67.     end
  68.   end
  69.  
  70.   if currentPos.y > 0 then
  71.     for c=1, currentPos.y do
  72.       up()
  73.     end
  74.   end
  75. end
  76.  
  77. function returnHome()
  78.   if currentPos.y > 0 then
  79.     for c=1, currentPos.y do
  80.       down()
  81.     end
  82.   end
  83.  
  84.   if currentPos.z > 0 then
  85.     turtle.turnLeft()
  86.     turtle.turnLeft()
  87.     for c=1, currentPos.z do
  88.       forward()
  89.     end
  90.     turtle.turnLeft()
  91.     turtle.turnLeft()
  92.   end
  93.  
  94.   if currentPos.x > 0 then
  95.     turtle.turnLeft()
  96.  
  97.     for c=1, currentPos.x do
  98.       forward()
  99.     end
  100.  
  101.     turtle.turnRight()
  102.   end
  103. end
  104.  
  105. -- 1x Coal = 80
  106. function JustTheRightAmount(doub)
  107.   local fuelLvl = turtle.getFuelLevel()
  108.  
  109.   local heimweg = currentPos.y + currentPos.z + currentPos.y
  110.   if doub then
  111.     heimweg = heimweg * 2
  112.   end
  113.  
  114.   if heimweg + 11 > fuelLvl then
  115.     return false
  116.   end
  117.  
  118.   return true
  119. end
  120.  
  121. function dumpThatShit()
  122.   turtle.turnLeft()
  123.   turtle.turnLeft()
  124.  
  125.   local c = 2
  126.   if turtle.getItemDetail() ~= nil and turtle.getItemDetail().name ~= "minecraft:coal" then
  127.     c = 1
  128.   end
  129.  
  130.   for cc=c, 16 do
  131.     turtle.select(cc)
  132.     turtle.drop()
  133.   end
  134.   turtle.select(1)
  135.  
  136.   turtle.turnRight()
  137.   turtle.turnRight()
  138. end
  139.  
  140. function refuelMe()
  141.   turtle.turnLeft()
  142.   turtle.turnLeft()
  143.   up()
  144.  
  145.   turtle.suck()
  146.  
  147.   turtle.select(2)
  148.   turtle.drop()
  149.   turtle.select(1)
  150.  
  151.   if turtle.getItemCount == 0 and JustTheRightAmount(true) == false then
  152.     os.reboot()
  153.   end
  154.  
  155.   turtle.refuel()
  156.  
  157.   turtle.turnLeft()
  158.   turtle.turnLeft()
  159.   down()
  160. end
  161.  
  162. function moveCheck()
  163.   if JustTheRightAmount(false) == false or inventarVoll() then
  164.     returnHome()
  165.     dumpThatShit()
  166.     if JustTheRightAmount(true) == false  then
  167.       refuelMe()
  168.     end
  169.     returnToWork()
  170.   end
  171. end
  172.  
  173. dumpThatShit()
  174. refuelMe()
  175. for cy=1, querySize.height do
  176.   for cx=1, querySize.width do
  177.     for cz=1, querySize.length do
  178.       moveCheck()
  179.       turtle.dig()
  180.       forward()
  181.       currentPos.z = cz
  182.     end
  183.     turtle.turnLeft()
  184.     turtle.turnLeft()
  185.     for cz=1, querySize.length do
  186.       forward()
  187.     end
  188.     turtle.turnLeft()
  189.     turtle.turnLeft()
  190.     currentPos.z = 0
  191.  
  192.     moveCheck()
  193.     turtle.turnRight()
  194.     turtle.dig()
  195.     forward()
  196.     turtle.turnLeft()
  197.     currentPos.x = cx
  198.   end
  199.   turtle.turnLeft()
  200.   for cx=1, querySize.width do
  201.     forward()
  202.   end
  203.   turtle.turnRight()
  204.   currentPos.x = 0
  205.  
  206.   moveCheck()
  207.   turtle.digUp()
  208.   up()
  209.   currentPos.y = cy
  210. end
  211.  
  212. for cy=1, querySize.height do
  213.   down()
  214. end
  215. dumpThatShit()
  216. refuelMe()
Add Comment
Please, Sign In to add comment