drProfessorGTA

ForstV1

Jul 25th, 2020 (edited)
1,607
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 11.12 KB | None | 0 0
  1. print("Programm Forst gestartet!")
  2.  
  3. local FuelBagger = turtle.getFuelLevel()
  4.  
  5. print("Fuellstand Turtle: ",FuelBagger)
  6. if turtle.getFuelLevel() ~= "unlimited" and turtle.getFuelLevel() < 1 then
  7.     for t=1,16 do
  8.         local data = turtle.getItemDetail()
  9.  
  10.         if data then
  11.           if data.name=="minecraft:coal" or data.name=="ic2:coke" then
  12.             turtle.refuel()
  13.             print("Treibstoff erkannt! Turtle betankt!")
  14.             local FuelBagger = turtle.getFuelLevel()
  15.             print("Fuellstand Turtle: ",FuelBagger)
  16.             break
  17.           end
  18.         end
  19.        
  20.         turtle.select(t)  
  21.         if t==16 then
  22.             print("Treibstoff nicht erkannt! Benoetigt Kohle!")
  23.             return
  24.         end
  25.     end
  26. end
  27.  
  28. write("Soll eine Kiste verwendet werden? (yes/no): ")
  29. kiste = io.read()
  30. if kiste=="yes" then
  31.     print("Platzieren Sie eine Kiste hinter der Turtle!")
  32. end
  33. write("Loop-funktion aktivieren? (yes/no): ")
  34. loop = io.read()
  35.  
  36. print("Turtle forest gestartet!")
  37.  
  38.  
  39. function Grundstellung()
  40.     PosLange=0
  41.     PosHohe=0
  42.     PosBreite=0
  43.     PosBreiteF=0
  44.     PosLangeTree=0
  45.     TreeHohe=0
  46.     TreeBreite=0
  47.     TreeScanLeft=0
  48.     TreeScanRight=0
  49.     local FuelBagger = turtle.getFuelLevel()
  50.     print("Fuellstand Turtle: ",FuelBagger)
  51. end
  52. function Grundstellung2()
  53.     PosHohe=0
  54.     PosBreite=0
  55.     PosBreiteF=0
  56.     PosLangeTree=0
  57.     TreeHohe=0
  58.     TreeBreite=0
  59.     TreeScanLeft=0
  60.     TreeScanRight=0
  61. end
  62. function Suche()
  63.     for su=1,10 do
  64.         local success, data = turtle.inspect()
  65.         if success then
  66.             if data.name=="minecraft:log" then
  67.                 Scan()
  68.                 break
  69.             end
  70.             if data.name=="minecraft:sapling" then
  71.                 Scan()
  72.                 break
  73.             end
  74.             print("Hinderniss erkannt!")
  75.             print("Kehre zu Start zurück")
  76.             GoBack()
  77.             break
  78.         end
  79.         turtle.forward()
  80.         PosLange=PosLange+1
  81.     end
  82.     print("Keinen weiteren Baum gefunden!")
  83.     GoBack()
  84. end
  85. function Scan()
  86. print("Scanne...")
  87.     scanzahl=0
  88.     while scanzahl==0 do
  89.         local success, data = turtle.inspect()
  90.         if success then
  91.             if data.name=="minecraft:log" then
  92.                 scanzahl=1
  93.                 print("Baum gefunden")
  94.                 PosLangeTree=PosLange
  95.                 ScanTreeHohe()
  96.             end
  97.         end
  98.     end
  99. end
  100. function ScanTreeHohe()
  101. print("Scanne Baum...")
  102.     scanzahl=0
  103.     TreeLange=0
  104.     TreeHohe2=0
  105.     ScanBlock=0
  106.     while scanzahl==0 do
  107.         if TreeLange==3 then
  108.             TreeLange=0
  109.         end
  110.         scanzahl2=0
  111.         local success, data = turtle.inspect()
  112.         if success then
  113.             if data.name=="minecraft:log" or data.name=="minecraft:leaves" then
  114.                 ScanBlock=1
  115.                 local success, data = turtle.inspectUp()
  116.                 if not success then
  117.                     turtle.up()
  118.                     PosHohe=PosHohe+1
  119.                     if TreeBreite==0 then
  120.                         TreeHohe=TreeHohe+1
  121.                     end
  122.                 else
  123.                     turtle.turnRight()
  124.                     turtle.turnRight()
  125.                     local success, data = turtle.inspect()
  126.                     if not success then
  127.                         turtle.forward()
  128.                         PosLange=PosLange-1
  129.                         while scanzahl2==0 do
  130.                             local success, data = turtle.inspectUp()
  131.                             if not success then
  132.                                 turtle.up()
  133.                                 PosHohe=PosHohe+1
  134.                                 if TreeBreite==0 then
  135.                                     TreeHohe=TreeHohe+1
  136.                                 end
  137.                                 scanzahl2=1
  138.                             else
  139.                                 while turtle.detect()==true do
  140.                                     turtle.dig()
  141.                                     os.sleep(0.2)
  142.                                 end
  143.                                 turtle.forward()
  144.                                 PosLange=PosLange-1
  145.                             end
  146.                         end
  147.                     else
  148.                         while turtle.detect()==true do
  149.                             turtle.dig()
  150.                             os.sleep(0.2)
  151.                         end
  152.                     end
  153.                     turtle.turnRight()
  154.                     turtle.turnRight()
  155.                 end
  156.             end
  157.         else
  158.             turtle.forward()
  159.             PosLange=PosLange+1
  160.             TreeLange=TreeLange+1
  161.             if TreeLange==3 then
  162.                 if TreeBreite==0 then
  163.                     scanzahl=1
  164.                 else
  165.                     turtle.turnRight()
  166.                     turtle.turnRight()
  167.                     while turtle.detect()==true do
  168.                         turtle.dig()
  169.                         os.sleep(0.2)
  170.                     end
  171.                     turtle.forward()
  172.                     while turtle.detect()==true do
  173.                         turtle.dig()
  174.                         os.sleep(0.2)
  175.                     end
  176.                     turtle.forward()
  177.                     while turtle.detect()==true do
  178.                         turtle.dig()
  179.                         os.sleep(0.2)
  180.                     end
  181.                     turtle.forward()
  182.                     PosLange=PosLange-3
  183.                     turtle.turnRight()
  184.                     turtle.turnRight()
  185.                     while scanzahl2==0 do
  186.                         local success, data = turtle.inspectUp()
  187.                         if not success then
  188.                             turtle.up()
  189.                             PosHohe=PosHohe+1
  190.                             scanzahl2=1
  191.                         else
  192.                             turtle.turnRight()
  193.                             turtle.turnRight()
  194.                             local success, data = turtle.inspect()
  195.                             if not success then
  196.                                 while turtle.detect()==true do
  197.                                     turtle.dig()
  198.                                     os.sleep(0.2)
  199.                                 end
  200.                                 turtle.forward()
  201.                                 PosLange=PosLange-1
  202.                                 turtle.turnRight()
  203.                                 turtle.turnRight()
  204.                             else
  205.                                 turtle.down()
  206.                                 PosHohe=PosHohe-1
  207.                             end
  208.                         end
  209.                     end
  210.                     if PosHohe>TreeHohe then
  211.                         scanzahl=1
  212.                     end
  213.                 end
  214.             end
  215.         end
  216.     end
  217.     turtle.turnRight()
  218.     turtle.turnRight()
  219.    
  220.     scanzahl=0
  221.     while scanzahl==0 do
  222.         local success, data = turtle.inspectDown()
  223.         if not success then
  224.             turtle.down()
  225.             PosHohe=PosHohe-1
  226.         else
  227.             if data.name=="minecraft:log" or data.name=="minecraft:leaves" then
  228.                 while turtle.detect()==true do
  229.                     turtle.dig()
  230.                     os.sleep(0.2)
  231.                 end
  232.                 turtle.forward()
  233.                 PosLange=PosLange-1
  234.             else
  235.                 scanzahl=1
  236.             end
  237.         end
  238.     end
  239.     turtle.turnRight()
  240.     turtle.turnRight()
  241.    
  242.     scanzahl=0
  243.     while scanzahl==0 do
  244.         success=turtle.forward()
  245.         if success then
  246.             PosLange=PosLange+1
  247.         end
  248.         PosLangeR=PosLange+1
  249.         if PosLangeTree<PosLangeR then
  250.             scanzahl=1
  251.         end
  252.     end
  253.    
  254.    
  255.     if ScanBlock==0 then
  256.         if TreeScanLeft==1 then
  257.             TreeScanLeft=2
  258.             turtle.turnRight()
  259.             scanzahl=0
  260.             while scanzahl==0 do
  261.                 local success, data = turtle.inspect()
  262.                 if not success then
  263.                     turtle.forward()
  264.                     PosBreite=PosBreite-1
  265.                     if PosBreite<1 then
  266.                         scanzahl=1
  267.                     end
  268.                 else
  269.                     turtle.turnRight()
  270.                     turtle.forward()
  271.                     PosLange=PosLange-1
  272.                     turtle.turnLeft()
  273.                 end
  274.             end
  275.             turtle.turnLeft()
  276.             scanzahl=0
  277.             while scanzahl==0 do
  278.                 PosLangeR=PosLange+1
  279.                 if PosLangeTree<PosLangeR then
  280.                     scanzahl=1
  281.                 else
  282.                     success=turtle.forward()
  283.                     if success then
  284.                         PosLange=PosLange+1
  285.                     end
  286.                 end
  287.             end
  288.         end
  289.         if TreeScanRight==1 then
  290.             TreeScanRight=2
  291.             turtle.turnLeft()
  292.             scanzahl=0
  293.             while scanzahl==0 do
  294.                 local success, data = turtle.inspect()
  295.                 if not success then
  296.                     turtle.forward()
  297.                     PosBreite=PosBreite-1
  298.                     if PosBreite<1 then
  299.                         scanzahl=1
  300.                     end
  301.                 else
  302.                     turtle.turnLeft()
  303.                     turtle.forward()
  304.                     PosLange=PosLange-1
  305.                     turtle.turnRight()
  306.                 end
  307.             end
  308.             turtle.turnRight()
  309.             scanzahl=0
  310.             while scanzahl==0 do
  311.                 PosLangeR=PosLange+1
  312.                 if PosLangeTree<PosLangeR then
  313.                     scanzahl=1
  314.                 else
  315.                     success=turtle.forward()
  316.                     if success then
  317.                         PosLange=PosLange+1
  318.                     end
  319.                 end
  320.             end
  321.         end
  322.     end
  323.    
  324.    
  325.    
  326.     if TreeScanLeft~=2 then
  327.         TreeScanLeft=1
  328.         turtle.turnLeft()
  329.         local success, data = turtle.inspect()
  330.         if not success then
  331.             turtle.forward()
  332.             PosBreite=PosBreite+1
  333.             turtle.turnRight()
  334.             TreeBreite=TreeBreite+1
  335.             ScanTreeHohe()
  336.             return
  337.         else
  338.             if data.name=="minecraft:log" or data.name=="minecraft:leaves" then
  339.                 scanzahl=0
  340.                 while scanzahl==0 do
  341.                     turtle.turnLeft()
  342.                     turtle.forward()
  343.                     PosLange=PosLange-1
  344.                     turtle.turnRight()
  345.                     local success, data = turtle.inspect()
  346.                     if not success then
  347.                         scanzahl=1
  348.                     end
  349.                 end
  350.                 turtle.forward()
  351.                 PosBreite=PosBreite+1
  352.                 turtle.turnRight()
  353.                 TreeBreite=TreeBreite+1
  354.                 ScanTreeHohe()
  355.                 return
  356.             end
  357.         end
  358.     end
  359.    
  360.     if TreeScanRight~=2 then
  361.         TreeScanRight=1
  362.         turtle.turnRight()
  363.         local success, data = turtle.inspect()
  364.         if not success then
  365.             turtle.forward()
  366.             PosBreite=PosBreite+1
  367.             turtle.turnLeft()
  368.             TreeBreite=TreeBreite+1
  369.             ScanTreeHohe()
  370.             return
  371.         else
  372.             if data.name=="minecraft:log" or data.name=="minecraft:leaves" then
  373.                 scanzahl=0
  374.                 while scanzahl==0 do
  375.                     turtle.turnRight()
  376.                     turtle.forward()
  377.                     PosLange=PosLange-1
  378.                     turtle.turnLeft()
  379.                     local success, data = turtle.inspect()
  380.                     if not success then
  381.                         scanzahl=1
  382.                     end
  383.                 end
  384.                 turtle.forward()
  385.                 PosBreite=PosBreite+1
  386.                 turtle.turnLeft()
  387.                 TreeBreite=TreeBreite+1
  388.                 ScanTreeHohe()
  389.                 return
  390.             end
  391.         end
  392.     end
  393.     ForestGrundstellung()
  394. end
  395. function ForestGrundstellung()
  396.     mess=TreeBreite/2
  397.     turtle.turnRight()
  398.     turtle.turnRight()
  399.     for m=1,mess do
  400.         turtle.forward()
  401.         PosLange=PosLange-1
  402.     end
  403.     turtle.turnRight()
  404.     for m=1,mess do
  405.         turtle.forward()
  406.         PosBreite=PosBreite+1
  407.     end
  408.     turtle.turnRight()
  409.     Forest()
  410. end
  411. function Forest()
  412.     print("Fälle Baum...")
  413.     for h=1,TreeHohe do
  414.         for b=1,TreeBreite do
  415.             for l=1,TreeBreite do
  416.                 while turtle.detect()==true do
  417.                     turtle.dig()
  418.                     os.sleep(0.2)
  419.                 end
  420.                 turtle.forward()
  421.                 PosLange=PosLange+1
  422.             end
  423.             turtle.turnRight()
  424.             turtle.turnRight()
  425.             for l=1,TreeBreite do
  426.                 turtle.forward()
  427.                 PosLange=PosLange-1
  428.             end
  429.             turtle.turnLeft()
  430.             if b<TreeBreite then
  431.                 turtle.forward()
  432.                 PosBreiteF=PosBreiteF+1
  433.             end
  434.             turtle.turnLeft()
  435.         end
  436.         turtle.turnLeft()
  437.         for b=2,TreeBreite do
  438.             turtle.forward()
  439.             PosBreiteF=PosBreiteF-1
  440.         end
  441.         turtle.turnRight()
  442.         if h<TreeHohe then
  443.             turtle.up()
  444.             PosHohe=PosHohe+1
  445.         end
  446.     end
  447.     for h=2,TreeHohe do
  448.         turtle.down()
  449.         PosHohe=PosHohe-1
  450.     end
  451.     BaumGrundstellung()
  452. end
  453. function BaumGrundstellung()
  454.     mess=TreeBreite/2
  455.     turtle.turnRight()
  456.     for m=1,mess do
  457.         turtle.forward()
  458.         PosBreite=PosBreite-1
  459.     end
  460.     turtle.turnLeft()
  461.     for m=1,mess do
  462.         turtle.forward()
  463.         PosLange=PosLange+1
  464.     end
  465.     Plant()
  466. end
  467. function Plant()
  468.     inventar=0
  469.     t=0
  470.     while t < 16 or inventar==16 do
  471.         t=t+1
  472.         if t>0 and t<17 then
  473.             turtle.select(t)
  474.         end
  475.         local data = turtle.getItemDetail()
  476.         if data then
  477.             if data.name=="minecraft:sapling" then
  478.                 break
  479.             else
  480.                 inventar=inventar+1
  481.             end
  482.         else
  483.             inventar=inventar+1
  484.         end
  485.         if inventar==16 then
  486.             print("Setzling fehlt!")
  487.             inventar=0
  488.             t=0
  489.         end
  490.     end
  491.     turtle.place()
  492.     os.sleep(0.2)
  493.     umrunden()
  494. end
  495. function umrunden()
  496.     turtle.turnLeft()
  497.     turtle.forward()
  498.     turtle.turnRight()
  499.     turtle.forward()
  500.     turtle.forward()
  501.     turtle.turnRight()
  502.     turtle.forward()
  503.     turtle.turnLeft()
  504.     PosLange=PosLange+2
  505.     Grundstellung2()
  506.     Suche()
  507. end
  508. function GoBack()
  509.     for gbh=1,40 do
  510.         turtle.up()
  511.     end
  512.     turtle.turnRight()
  513.     turtle.turnRight()
  514.     for gbl=1,PosLange do
  515.         turtle.forward()
  516.     end
  517.     turtle.turnRight()
  518.     turtle.turnRight()
  519.     for gbh=1,40 do
  520.         turtle.down()
  521.     end
  522.    
  523.     Kiste()
  524. end
  525. function Kiste()
  526.     if kiste=="yes" then
  527.         turtle.turnRight()
  528.         turtle.turnRight()
  529.         local success, data = turtle.inspect()
  530.         if success then
  531.             if data.name=="minecraft:chest" then
  532.                 for k=1,16 do
  533.                     turtle.select(k)
  534.                     local data = turtle.getItemDetail()
  535.                     if data then
  536.                         if data.name~="minecraft:coal" and data.name~="ic2:coke" and data.name~="minecraft:sapling" then
  537.                             DropTrue = turtle.drop()
  538.                         end
  539.                     end
  540.                 end
  541.                 if DropTrue == false then
  542.                     print("Kiste voll! Bitte Kiste entleeren!")
  543.                 end
  544.             else
  545.                 print("Turtle findet keine Kiste zum leeren des Inventars!")
  546.             end
  547.         end
  548.         turtle.turnRight()
  549.         turtle.turnRight()
  550.     end
  551.     Grundstellung()
  552.     if loop=="yes" then
  553.         Suche()
  554.     end
  555. end
  556.  
  557.  
  558.  
  559. Grundstellung()
  560. Suche()
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
Advertisement
Add Comment
Please, Sign In to add comment