fantadada

Turtule_v1

Apr 15th, 2022 (edited)
437
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.12 KB | None | 0 0
  1.  
  2. local tArgs = { ... }
  3. if #tArgs ~= 1 then print ("Tunnel <profondeur>") return end
  4.  
  5. local lenght = tonumber( tArgs[1] )
  6. if lenght <1 then print("la profondeur soir être un nombre psotif") return end
  7.  
  8.  
  9. local function rotate90(str)
  10.     if type(str) ~= "string" then print("Invalide str") return end
  11.     if str == "R" then
  12.         turtle.turnRight()
  13.         turtle.turnRight()
  14.     elseif str == "L" then
  15.             turtle.turnLeft()
  16.             turtle.turnLeft()
  17.     else
  18.             error("Mauvaise direction")
  19.     end
  20. end
  21.  
  22. local function minigL(str)
  23.     if turtle.turnLeft() then
  24.         turtle.dig(str)
  25.         rotate90("L")
  26.         if turtle.detect() then
  27.             turtle.dig(str)
  28.             turtle.turnLeft()
  29.         end
  30.     end
  31. end
  32.  
  33. local function oil()
  34.  
  35.     if turtle.getFuelLevel() < turtle.getFuelLimit() then
  36.         turtle.refuel()
  37.     end
  38. end
  39.  
  40. local function try_dig(str) ---On prend la position
  41.     if type(str) ~= "string" then print("Invalide str") return end
  42.     if str == "D" then
  43.         while turtle.detectDown() do
  44.             if turtle.digDown() then
  45.                 sleep(0.5)
  46.             else
  47.                 return false
  48.             end
  49.         end
  50.     elseif str == "U" then
  51.         while turtle.detectUp() do
  52.             if turtle.digUp() then
  53.                 sleep(0.5)
  54.             else
  55.                 return false
  56.             end
  57.         end
  58.     elseif str == "F" then
  59.         while turtle.detect() do
  60.             if turtle.dig() then
  61.                 sleep(0.5)
  62.             else
  63.                 return false
  64.             end
  65.         end
  66.     else
  67.         error("Erreur")
  68.     end
  69.     return true
  70. end
  71.  
  72. local function try_UpDown(str)
  73.     if type(str) ~= "string" then print("Invalide str") return end
  74.     oil()
  75.     if str == "D" then
  76.         while not(turtle.down()) do
  77.             if turtle.detectDown() then
  78.                 if not(try_dig(str)) then
  79.                     return false
  80.                 end
  81.             else
  82.                 sleep(0.5)
  83.             end
  84.         end
  85.         return true
  86.     elseif str == "U" then
  87.         while not(turtle.up()) do
  88.             if turtle.detectUp() then
  89.                 if not(try_dig(str)) then
  90.                     return false
  91.                 end
  92.             else
  93.                 sleep(0.5)
  94.             end
  95.         end
  96.         return true
  97.     elseif str == "F" then
  98.         while not(turtle.forward()) do
  99.             if turtle.detect() then
  100.                 if not(try_dig(str)) then
  101.                     return false
  102.                 end
  103.             else
  104.                 sleep(0.5)
  105.             end
  106.         end
  107.         return true
  108.     else
  109.         error("Erreur")
  110.     end
  111. end
  112.  
  113.  
  114. for i=1, lenght, 1 do
  115.     try_dig("U")
  116.     turtle.turnLeft()
  117.     try_dig("F")
  118.     try_UpDown("U")
  119.     try_dig("F")
  120.     rotate90("R")
  121.     try_dig("F")
  122.     try_UpDown("D")
  123.     try_dig("F")
  124.     turtle.turnLeft()
  125.  
  126.     if i<lenght then
  127.         try_dig("F")
  128.         if not(try_UpDown("F")) then
  129.             print("nop")
  130.             break
  131.         else
  132.             print("tunnel finie")
  133.         end
  134.     end
  135.  
  136. end
  137.  
  138.  
  139.  
Add Comment
Please, Sign In to add comment