Advertisement
drunkenTaifun

bettermine

Nov 20th, 2020 (edited)
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.72 KB | None | 0 0
  1. local fackelabstand = 8
  2. local fackelzaehler = 0
  3. local invposfackel = 0
  4. local invposchest = 0
  5. local invposcoal = 0
  6.  
  7. function vor()
  8.     while not turtle.forward() do
  9.         turtle.dig()
  10.     end
  11.     while turtle.detectUp() do
  12.         turtle.digUp()
  13.     end
  14.     turtle.digDown()
  15.     if turtle.getFuelLevel() < 10 then
  16.         turtle.select(invposcoal)
  17.         turtle.refuel()
  18.         turtle.select(1)
  19.     end
  20. end
  21.  
  22. function fackel()
  23.     if (fackelzaehler>=fackelabstand) and (invposfackel ~=0) then
  24.         turtle.turnRight()
  25.         turtle.turnRight()
  26.         turtle.select(invposfackel)
  27.         if turtle.place() then
  28.             fackelzaehler = 0
  29.             if turtle.getItemCount(invposfackel) == 0 then
  30.                 invposfackel = 0
  31.             end
  32.         else
  33.             fackelzaehler = fackelzaehler-2
  34.         end
  35.         turtle.select(1)
  36.         turtle.turnRight()
  37.         turtle.turnRight()
  38.     else
  39.         fackelzaehler = fackelzaehler+1
  40.     end
  41. end
  42.  
  43. function gang()
  44.     for j=1,laenge do
  45.         vor()
  46.         fackel()
  47.     end
  48. end
  49.  
  50. function abladen()
  51.     for q=1,16 do
  52.         if (q ~= invposchest) and (q ~= invposcoal) and (q ~= invposfackel) then
  53.             turtle.select(q)
  54.             turtle.drop()
  55.         end
  56.     end
  57. end
  58.  
  59. function voll()
  60.     if (turtle.getItemCount(13)>0) and (invposchest ~= 0) then
  61.         turtle.dig()
  62.         turtle.down()
  63.         turtle.dig()
  64.         turtle.select(invposchest)
  65.         turtle.place()
  66.         abladen()
  67.         turtle.up()
  68.         turtle.select(1)
  69.     end
  70. end
  71.  
  72. function quer()
  73.     for k=1,abstand do
  74.         vor()
  75.         fackel()
  76.     end
  77. end
  78.  
  79. function drehen()
  80.     if richtung == "r" then
  81.         turtle.turnRight()
  82.         quer()
  83.         turtle.turnRight()
  84.         richtung = "l"
  85.     else
  86.         turtle.turnLeft()
  87.         quer()
  88.         turtle.turnLeft()
  89.         richtung = "r"
  90.     end
  91. end
  92.  
  93. function invcheck()
  94.     for l=1,16 do
  95.         data = turtle.getItemDetail(l)
  96.         if data then
  97.             if data.name == "minecraft:torch" then
  98.                 invposfackel = l
  99.             elseif data.name == "minecraft:chest" then
  100.                 invposchest = l
  101.             elseif data.name == "minecraft:coal" then
  102.                 invposcoal = l
  103.             end
  104.         end
  105.     end
  106. end
  107.  
  108. function invsort()
  109.     if (invposcoal ~= 0) and (invposcoal ~= 1) then
  110.         turtle.select(invposcoal)
  111.         if turtle.transferTo(1) then
  112.             invposcoal = 1
  113.         end
  114.     end
  115.     if (invposfackel ~= 0) and (invposfackel ~= 2) then
  116.         turtle.select(invposfackel)
  117.         if turtle.transferTo(2) then
  118.             invposfackel = 2
  119.         end
  120.     end
  121.     if (invposchest ~= 0) and (invposchest ~= 3) then
  122.         turtle.select(invposchest)
  123.         if turtle.transferTo(3) then
  124.             invposchest = 3
  125.         end
  126.     end
  127.     turtle.select(1)
  128. end
  129.  
  130. function fuelcheck()
  131.     needed = (laenge+abstand)*anzahl*2
  132.     if turtle.getFuelLevel() < needed then
  133.         if invposcoal == 0 then
  134.             write("[Fuelcheck] !!!ACHTUNG!!! Treibstoff nicht ausreichend\n")
  135.         else
  136.             diff = needed - turtle.getFuelLevel()
  137.             if turtle.getItemCount(invposcoal) >= (diff/80) then
  138.                 turtle.select(invposcoal)
  139.                 while turtle.getFuelLevel() < needed do
  140.                     turtle.refuel()
  141.                 end
  142.                 write("[Fuelcheck] Treibstoff nachgefüllt\n")
  143.             else
  144.                 write("[Fuelcheck] !!!ACHTUNG!!! Treibstoff nicht ausreichend\n")
  145.             end
  146.         end    
  147.     else
  148.         write("[Fuelcheck] Treibstoff ausreichend\n")
  149.     end
  150.     write("Abbrechen mit 'x', sonst start... ")
  151.     auswahl = io.read()
  152.     if auswahl == "x" then
  153.         error()
  154.     end
  155. end
  156.  
  157. -- MAIN
  158. term.clear()
  159. write("Im Hauptgang links oder rechts in Kopfhöhe an die Wand setzen\n")
  160. write("Fackeln, Kisten, Kohle ins Inventar\n")
  161. write("!!!UNTERSTE REIHE BLEIBT FREI!!!\n")
  162.  
  163. write("\nLaenge der Gänge: ")
  164. laenge = io.read()
  165.  
  166. --write("Abstand der Gänge: ")
  167. --abstand = io.read()
  168. --abstand = abstand+1
  169. abstand = 3
  170.  
  171. write("Anzahl der Gangpaare (hin-zurück): ")
  172. anzahl = io.read()
  173.  
  174. write("\nIn welche Richtung fortfahren?\n")
  175. write("rechts (r) oder links (l): ")
  176. richtung = read()
  177. term.clear()
  178. fuelcheck()
  179. for i=1,anzahl do
  180.     invcheck()
  181.     invsort()
  182.     gang()
  183.     voll()
  184.     invcheck()
  185.     invsort()
  186.     drehen()
  187.     gang()
  188.     voll()
  189.     drehen()
  190. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement