drProfessorGTA

BauV1

Jul 25th, 2020 (edited)
996
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 12.97 KB | None | 0 0
  1. print("Programm zum bauen 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.  
  29. print("Bauoptionen:")
  30. print("1 - Flaeche")
  31. print("2 - Wand")
  32. print("3 - Treppe")
  33. print("4 - -/-")
  34. print("5 - -/-")
  35. print("6 - -/-")
  36. print("7 - -/-")
  37. print("8 - -/-")
  38. print("9 - -/-")
  39. print("10 - -/-")
  40. write("Geben Sie eine Nummer ein: ")
  41. BauOpt = io.read()
  42. BauOpt=BauOpt+0
  43.  
  44.  
  45. if BauOpt==1 or BauOpt==2 or BauOpt==3 then
  46.     write("Geben Sie eine laenge ein: ")
  47.     lange = io.read()
  48.     write("Geben Sie eine breite ein: ")
  49.     breite = io.read()
  50.     if BauOpt==2 then
  51.         write("Geben Sie eine hohe ein (0 = keine hohe): ")
  52.         hohe = io.read()
  53.         hohe2 = 0+hohe
  54.     else
  55.         hohe2 = 1
  56.     end
  57.    
  58.    
  59.     lange2 = 0+lange
  60.     lange3 = lange2-1
  61.     breite2 = 0+breite
  62.     breite3 = breite2-1
  63. end
  64.  
  65. write("Soll eine Kiste verwendet werden? (yes/no): ")
  66. kiste = io.read()
  67. if kiste=="yes" then
  68.     print("Platzieren Sie eine Kiste hinter der Turtle!")
  69. end
  70.  
  71.  
  72.  
  73. scanzahl=0
  74. while scanzahl==0 do
  75.     write("Legen Sie ein Block in den Aktiven Slot und geben Sie das Wort 'scan' ein! ")
  76.     scan = io.read()
  77.     if scan=="scan" then
  78.         local data = turtle.getItemDetail()
  79.             if data then
  80.             print("Moechten Sie diesen Block verwenden?(yes/no): ",data.name)
  81.             blockbool = io.read()
  82.             if blockbool=="yes" then
  83.                 scanzahl=1
  84.                 block=data.name
  85.             end
  86.         end
  87.     end
  88. end
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98. print("Turtle gestartet!")
  99.  
  100. local quader = lange2*breite2*hohe2
  101. local flache = lange2*breite2
  102. local btreib = (2*lange2)*(2*breite2)*hohe2
  103.  
  104. print("L*B*H = ",quader)
  105. print("L*B = ",flache)
  106. print("Treibstoff benoetigt: ",btreib)
  107.  
  108.  
  109.  
  110. if turtle.getFuelLevel() ~= "unlimited" and turtle.getFuelLevel() < btreib then
  111.     for t=1,16 do
  112.         local data = turtle.getItemDetail()
  113.  
  114.         if data then
  115.           if data.name=="minecraft:coal" or data.name=="ic2:coke" then
  116.             turtle.refuel()
  117.             print("Treibstoff erkannt! Turtle betankt!")
  118.             local FuelBagger = turtle.getFuelLevel()
  119.             print("Fuellstand Turtle: ",FuelBagger)
  120.           end
  121.         end
  122.        
  123.         turtle.select(t)
  124.         if t==16 then
  125.             break
  126.         end
  127.         if turtle.getFuelLevel() ~= "unlimited" and turtle.getFuelLevel() > btreib then
  128.             break
  129.         end
  130.     end
  131. end
  132. if turtle.getFuelLevel() ~= "unlimited" and turtle.getFuelLevel() < btreib then
  133.     local FuelBagger = turtle.getFuelLevel()
  134.     print("Fuellstand Turtle: ",FuelBagger)
  135.     print("Tankfuellung wird nicht komplett ausreichen!")
  136.     write("Trotzdem starten? (yes/no): ")
  137.     start = io.read()
  138.     if start=="no" then
  139.         return
  140.     end
  141. end
  142. if turtle.getFuelLevel() ~= "unlimited" and turtle.getFuelLevel() > btreib then
  143.     local FuelBagger = turtle.getFuelLevel()
  144.     print("Fuellstand Turtle: ",FuelBagger)
  145.     print("Tankfuellung wird komplett ausreichen!")
  146. end
  147.  
  148.  
  149.  
  150.  
  151. gefahrenHohe=0
  152. gefahrenBreite=0
  153. gefahrenLange=0
  154. gefahrenTreppe=0
  155. nochTreib=btreib
  156. ruckfahrt=0
  157. binruck=0
  158.  
  159. print("Turtle bau gestartet!")
  160.  
  161. if BauOpt~=1 then
  162.     turtle.up()
  163.     turtle.forward()
  164. end
  165.  
  166. for h=1,hohe2 do
  167.  
  168.     for b=1,breite2 do
  169.    
  170.         for l=1,lange3 do
  171.            
  172.            
  173.             while turtle.detectDown()==false do
  174.                 inventar=0
  175.                 t=0
  176.                 while t < 16 or inventar==16 do
  177.                     t=t+1
  178.                     if t>0 and t<17 then
  179.                         turtle.select(t)
  180.                     end
  181.                     local data = turtle.getItemDetail()
  182.                     if data then
  183.                         if data.name==block then
  184.                             break
  185.                         else
  186.                             inventar=inventar+1
  187.                         end
  188.                     else
  189.                         inventar=inventar+1
  190.                     end
  191.                     if inventar==16 then
  192.                         print("Material fehlt: ",block)
  193.                        
  194.                         if ruckfahrt==0 then
  195.                             turtle.turnRight()
  196.                             turtle.turnRight()
  197.                            
  198.                             for rfl=1,gefahrenLange do
  199.                                 turtle.forward()
  200.                                 if BauOpt==3 and gefahrenTreppe>0 then
  201.                                     gefahrenTreppe=gefahrenTreppe-1
  202.                                     turtle.down()
  203.                                 end
  204.                             end
  205.                            
  206.                             turtle.turnRight()
  207.                            
  208.                             for rfb=1,gefahrenBreite do
  209.                                 turtle.forward()
  210.                             end
  211.                            
  212.                             turtle.turnRight()
  213.                             if BauOpt~=1 then
  214.                                 turtle.back()
  215.                                 turtle.down()
  216.                             end
  217.                             for rfh=1,gefahrenHohe do
  218.                                 turtle.down()
  219.                             end
  220.                            
  221.                             ruckfahrt=1
  222.                             binruck=1
  223.                         end
  224.                         if kiste=="yes" and binruck==1 then
  225.                             turtle.turnRight()
  226.                             turtle.turnRight()
  227.                             local success, data = turtle.inspect()
  228.                             if success then
  229.                                 if data.name=="minecraft:chest" then
  230.                                     for k=1,16 do
  231.                                         turtle.select(k)
  232.                                         DropTrue = turtle.suck()
  233.                                     end
  234.                                     if DropTrue == false then
  235.                                         print("Kiste leer! Bitte Kiste fuellen!")
  236.                                     end
  237.                                 else
  238.                                     print("Turtle findet keine Kiste zum fuellen des Inventars!")
  239.                                 end
  240.                             end
  241.                             turtle.turnRight()
  242.                             turtle.turnRight()
  243.                         end
  244.                        
  245.                         inventar=0
  246.                         t=0
  247.                     end
  248.                 end
  249.                 turtle.placeDown()
  250.                 os.sleep(0.2)
  251.             end
  252.            
  253.             while binruck==1 do
  254.                 if binruck==1 then
  255.                    
  256.                     for rfh=1,gefahrenHohe do
  257.                         turtle.up()
  258.                     end
  259.                    
  260.                     if BauOpt~=1 then
  261.                         turtle.up()
  262.                         turtle.forward()
  263.                     end
  264.                    
  265.                     turtle.turnRight()
  266.                    
  267.                     for rfb=1,gefahrenBreite do
  268.                         turtle.forward()
  269.                     end
  270.                    
  271.                     turtle.turnLeft()
  272.                
  273.                     for rfb=1,gefahrenLange do
  274.                         if BauOpt==3 then
  275.                             gefahrenTreppe=gefahrenTreppe+1
  276.                             turtle.up()
  277.                         end
  278.                         turtle.forward()
  279.                     end
  280.                    
  281.                     ruckfahrt=0
  282.                     binruck=0
  283.                 end
  284.             end
  285.  
  286.             if BauOpt==3 then
  287.                 turtle.up()
  288.                 gefahrenTreppe=gefahrenTreppe+1
  289.             end
  290.             turtle.forward()
  291.             gefahrenLange=gefahrenLange+1
  292.             nochTreib=nochTreib-1
  293.            
  294.             ruckTreib=gefahrenLange+gefahrenBreite+gefahrenHohe+10+gefahrenTreppe
  295.             while turtle.getFuelLevel() ~= "unlimited" and turtle.getFuelLevel() < ruckTreib and turtle.getFuelLevel() < nochTreib do
  296.                 for t=1,16 do
  297.                     local data = turtle.getItemDetail()
  298.  
  299.                     if data then
  300.                       if data.name=="minecraft:coal" or data.name=="ic2:coke" then
  301.                         turtle.refuel()
  302.                         print("Treibstoff erkannt! Turtle betankt!")
  303.                         local FuelBagger = turtle.getFuelLevel()
  304.                         print("Fuellstand Turtle: ",FuelBagger)
  305.                         ruckfahrt=0
  306.                         if binruck==1 then
  307.                        
  308.                             for rfh=1,gefahrenHohe do
  309.                                 turtle.up()
  310.                             end
  311.                            
  312.                             if BauOpt~=1 then
  313.                                 turtle.up()
  314.                                 turtle.forward()
  315.                             end
  316.                            
  317.                             turtle.turnRight()
  318.                            
  319.                             for rfb=1,gefahrenBreite do
  320.                                 turtle.forward()
  321.                             end
  322.                            
  323.                             turtle.turnLeft()
  324.                            
  325.                             for rfb=1,gefahrenLange do
  326.                                 if BauOpt==3 then
  327.                                     gefahrenTreppe=gefahrenTreppe+1
  328.                                     turtle.up()
  329.                                 end
  330.                                 turtle.forward()
  331.                             end
  332.                            
  333.                             binruck=0
  334.                         end
  335.                         break
  336.                       end
  337.                     end
  338.                    
  339.                     turtle.select(t)  
  340.                     if t==16 then
  341.                         print("Kein Treibstoff! Bitte nachfüllen!")
  342.                         if ruckfahrt==0 then
  343.                             turtle.turnRight()
  344.                             turtle.turnRight()
  345.                            
  346.                             for rfl=1,gefahrenLange do
  347.                                 turtle.forward()
  348.                                 if BauOpt==3 and gefahrenTreppe>0 then
  349.                                     gefahrenTreppe=gefahrenTreppe-1
  350.                                     turtle.down()
  351.                                 end
  352.                             end
  353.                            
  354.                             turtle.turnRight()
  355.                            
  356.                             for rfb=1,gefahrenBreite do
  357.                                 turtle.forward()
  358.                             end
  359.                            
  360.                             turtle.turnRight()
  361.                            
  362.                             if BauOpt~=1 then
  363.                                 turtle.back()
  364.                                 turtle.down()
  365.                             end
  366.                            
  367.                             for rfh=1,gefahrenHohe do
  368.                                 turtle.down()
  369.                             end
  370.                            
  371.                             ruckfahrt=1
  372.                             binruck=1
  373.                         end
  374.                         break
  375.                     end
  376.                 end
  377.             end        
  378.         end
  379.        
  380.         while turtle.detectDown()==false do
  381.             inventar=0
  382.             t=0
  383.             while t < 16 or inventar==16 do
  384.                 t=t+1
  385.                 if t>0 and t<17 then
  386.                     turtle.select(t)
  387.                 end
  388.                 local data = turtle.getItemDetail()
  389.                 if data then
  390.                     if data.name==block then
  391.                         break
  392.                     else
  393.                         inventar=inventar+1
  394.                     end
  395.                 else
  396.                     inventar=inventar+1
  397.                 end
  398.                 if inventar==16 then
  399.                     print("Material fehlt: ",block)
  400.                    
  401.                     if ruckfahrt==0 then
  402.                         turtle.turnRight()
  403.                         turtle.turnRight()
  404.                        
  405.                         for rfl=1,gefahrenLange do
  406.                             turtle.forward()
  407.                             if BauOpt==3 and gefahrenTreppe>0 then
  408.                                 gefahrenTreppe=gefahrenTreppe-1
  409.                                 turtle.down()
  410.                             end
  411.                         end
  412.                        
  413.                         turtle.turnRight()
  414.                        
  415.                         for rfb=1,gefahrenBreite do
  416.                             turtle.forward()
  417.                         end
  418.                        
  419.                         turtle.turnRight()
  420.                        
  421.                         if BauOpt~=1 then
  422.                             turtle.back()
  423.                             turtle.down()
  424.                         end
  425.                        
  426.                         for rfh=1,gefahrenHohe do
  427.                             turtle.down()
  428.                         end
  429.                        
  430.                         ruckfahrt=1
  431.                         binruck=1
  432.                     end
  433.                     if kiste=="yes" and binruck==1 then
  434.                         turtle.turnRight()
  435.                         turtle.turnRight()
  436.                         local success, data = turtle.inspect()
  437.                         if success then
  438.                             if data.name=="minecraft:chest" then
  439.                                 for k=1,16 do
  440.                                     turtle.select(k)
  441.                                     DropTrue = turtle.suck()
  442.                                 end
  443.                                 if DropTrue == false then
  444.                                     print("Kiste leer! Bitte Kiste fuellen!")
  445.                                 end
  446.                             else
  447.                                 print("Turtle findet keine Kiste zum fuellen des Inventars!")
  448.                             end
  449.                         end
  450.                         turtle.turnRight()
  451.                         turtle.turnRight()
  452.                     end
  453.                    
  454.                     inventar=0
  455.                     t=0
  456.                 end
  457.             end
  458.             turtle.placeDown()
  459.             os.sleep(0.2)
  460.         end
  461.         while binruck==1 do
  462.             if binruck==1 then
  463.                
  464.                 for rfh=1,gefahrenHohe do
  465.                     turtle.up()
  466.                 end
  467.                
  468.                 if BauOpt~=1 then
  469.                     turtle.up()
  470.                     turtle.forward()
  471.                 end
  472.                
  473.                 turtle.turnRight()
  474.                
  475.                 for rfb=1,gefahrenBreite do
  476.                     turtle.forward()
  477.                 end
  478.                
  479.                 turtle.turnLeft()
  480.            
  481.                 for rfb=1,gefahrenLange do
  482.                     if BauOpt==3 then
  483.                         gefahrenTreppe=gefahrenTreppe+1
  484.                         turtle.up()
  485.                     end
  486.                     turtle.forward()
  487.                 end
  488.                
  489.                 ruckfahrt=0
  490.                 binruck=0
  491.             end
  492.         end
  493.        
  494.         turtle.turnRight()
  495.         turtle.turnRight()
  496.    
  497.         for l=1,lange3 do
  498.            
  499.            
  500.             turtle.forward()
  501.             if BauOpt==3 then
  502.                 turtle.down()
  503.                 gefahrenTreppe=gefahrenTreppe-1
  504.             end
  505.             gefahrenLange=gefahrenLange-1
  506.             nochTreib=nochTreib-1
  507.            
  508.             ruckTreib=gefahrenLange+gefahrenBreite+gefahrenHohe+10+gefahrenTreppe
  509.             while turtle.getFuelLevel() ~= "unlimited" and turtle.getFuelLevel() < ruckTreib and turtle.getFuelLevel() < nochTreib do
  510.                 for t=1,16 do
  511.                     local data = turtle.getItemDetail()
  512.  
  513.                     if data then
  514.                       if data.name=="minecraft:coal" or data.name=="ic2:coke" then
  515.                         turtle.refuel()
  516.                         print("Treibstoff erkannt! Turtle betankt!")
  517.                         local FuelBagger = turtle.getFuelLevel()
  518.                         print("Fuellstand Turtle: ",FuelBagger)
  519.                         ruckfahrt=0
  520.                         if binruck==1 then
  521.                        
  522.                             for rfh=1,gefahrenHohe do
  523.                                 turtle.up()
  524.                             end
  525.                            
  526.                             if BauOpt~=1 then
  527.                                 turtle.up()
  528.                                 turtle.forward()
  529.                             end
  530.                            
  531.                             turtle.turnRight()
  532.                            
  533.                             for rfb=1,gefahrenBreite do
  534.                                 turtle.forward()
  535.                             end
  536.                            
  537.                             turtle.turnLeft()
  538.                            
  539.                             for rfb=1,gefahrenLange do
  540.                                 if BauOpt==3 then
  541.                                     gefahrenTreppe=gefahrenTreppe+1
  542.                                     turtle.up()
  543.                                 end
  544.                                 turtle.forward()
  545.                             end
  546.                            
  547.                             turtle.turnRight()
  548.                             turtle.turnRight()
  549.                            
  550.                             binruck=0
  551.                         end
  552.                         break
  553.                       end
  554.                     end
  555.                    
  556.                     turtle.select(t)  
  557.                     if t==16 then
  558.                         print("Kein Treibstoff! Bitte nachfüllen!")
  559.                         if ruckfahrt==0 then
  560.                                
  561.                             for rfl=1,gefahrenLange do
  562.                                 turtle.forward()
  563.                                 if BauOpt==3 then
  564.                                     gefahrenTreppe=gefahrenTreppe-1
  565.                                     turtle.down()
  566.                                 end
  567.                             end
  568.                            
  569.                             turtle.turnRight()
  570.                            
  571.                             for rfb=1,gefahrenBreite do
  572.                                 turtle.forward()
  573.                             end
  574.                            
  575.                             turtle.turnRight()
  576.                            
  577.                             if BauOpt~=1 then
  578.                                 turtle.back()
  579.                                 turtle.down()
  580.                             end
  581.                            
  582.                             for rfh=1,gefahrenHohe do
  583.                                 turtle.down()
  584.                             end
  585.                            
  586.                             ruckfahrt=1
  587.                             binruck=1
  588.                         end
  589.                         break
  590.                     end
  591.                 end
  592.             end        
  593.         end
  594.        
  595.        
  596.         turtle.turnLeft()
  597.         if b<breite2 then
  598.             turtle.forward()
  599.             gefahrenBreite=gefahrenBreite+1
  600.             nochTreib=nochTreib-1
  601.         end
  602.         turtle.turnLeft()
  603.    
  604.     end
  605.    
  606.     turtle.turnLeft()
  607.    
  608.         for b=1,breite3 do
  609.        
  610.             turtle.forward()
  611.             gefahrenBreite=gefahrenBreite-1
  612.             nochTreib=nochTreib-1
  613.        
  614.         end
  615.        
  616.     turtle.turnRight()
  617.     turtle.up()
  618.     gefahrenHohe=gefahrenHohe+1
  619.     nochTreib=nochTreib-1
  620.     print("Turtle neue Schicht nach oben begonnen.")
  621.    
  622.  
  623. end
  624.  
  625. if BauOpt~=1 then
  626.     turtle.back()
  627.     turtle.down()
  628. end
  629.  
  630. for h=1,hohe2 do
  631.     turtle.down()
  632.     gefahrenHohe=gefahrenHohe-1
  633.     nochTreib=nochTreib-1
  634. end
  635.  
  636. print("Turtle bau beendet!")
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
Advertisement
Add Comment
Please, Sign In to add comment