Advertisement
karelvysinka

Turtle GPS MINING 1.0 2018

Aug 26th, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.39 KB | None | 0 0
  1. local version =
  2. 1.3
  3. -- Pri zmene programu je treba na radku 2 zmenit verzi, aby se program automaticky aktualizoval
  4. -- local code je treba zmenit dle potreby
  5.  
  6. --Vize - plán:
  7. -- Update na GPS řízení
  8. -- Těžba na více stran
  9. -- Pokládání anchorů a vkládání Ender pearl pro delší těžbu
  10. -- Využití všech slotů turtly a pokládání méně často Ender Chestky / méně často vyprazdňovat
  11. -- Enderchestku na druhé straně vyprazdňovat rychleji
  12. --------------------------------------------------------------------------------------------
  13. --PROGRAM PRO UPDATE
  14. --------------------------------------------------------------------------------------------
  15. local code = "bDye5hLi"
  16.  
  17. --check version
  18. term.clear()
  19. term.setCursorPos(1,1)
  20. print("Program loading...")
  21. print("Current version: "..version)
  22. local updateSite= http.get("http://pastebin.com/raw.php?i="..code)
  23. updateSite.readLine()
  24. local newVersion = updateSite.readLine()
  25. if tonumber(newVersion) > version then
  26.         print("Update required. Updating now...")
  27.         local updateSite = http.get("http://pastebin.com/raw.php?i="..code)
  28.         local siteFile = updateSite.readAll()
  29.         local writeFile = fs.open(shell.getRunningProgram(),"w")
  30.         writeFile.write(siteFile)
  31.         writeFile.close()
  32.         print("The program will now restart your computer.")
  33.         sleep(1)
  34.         os.reboot()
  35. end
  36. --------------------------------------------------------------------------------------------
  37. -- HLAVNÍ PROGRAM
  38. --------------------------------------------------------------------------------------------
  39. function start()
  40. -- start hlavního programu
  41.  
  42. -- nastavíme hloubku kopani - Výpočet dle GPS
  43.  
  44. local x, y, z = gps.locate()
  45.  
  46. print("X = " .. x)
  47. print("Y = " .. y)
  48. print("Z = " .. z)
  49.  
  50. local hlb = z
  51. print("Hloubka kopání bude: " .. z .. "metrů")
  52. print("Vložte COAL nebo LAVA bucket, aby mohla Turtla těžit.")
  53. print("Enderchest musi byt umistena ve slotu 3! Vložte ji tam...")
  54. -- pausa před spuštěním těžby
  55.  
  56. while true do
  57.   print( "E = Start mining" )
  58.  
  59.   local event, key = os.pullEvent( "key" ) -- limit os.pullEvent to the 'key' event
  60.  
  61.   if key == keys.e then -- if the key pressed was 'e'
  62.     print( "You pressed [E]. Starting program..." )
  63.     break
  64.   end
  65. end
  66.  
  67. print("Starting mining....")
  68.  
  69.  
  70. while true do
  71.  
  72. -- cyklus pro kopani xxx dolu
  73. -- turtla bude kopat dolů a posílat itemy do EnderChest
  74.  
  75. -- před startem je třeba provést ošetření/kontrolu, zda turtla nemá nad sebou Ender Chest, pokud ano, vcucni ji a dej do slotu 3
  76. -- kontrola je nutná kvůli odhlášení, či restartu serveru
  77.  
  78. turtle.select(3)  
  79. local success, data = turtle.inspectUp()
  80.  
  81. if success then
  82.     print("Block name: ", data.name)
  83.     dataEnder = data.name
  84.     print("Block metadata: ", data.metadata)
  85.     if dataEnder == "EnderStorage:enderChest" then
  86.         print("Nalezena Ender Chest")
  87.         turtle.digUp()
  88.     end
  89. end
  90.  
  91. --provedeme prvotni refuel, aby Turtla mohla dělat posun
  92. turtle.select(1)
  93. turtle.refuel()
  94. print("Proveden refuel...")
  95.  
  96.  
  97. for a=1,hlb,1 do
  98.     turtle.select(1)
  99.     turtle.digDown()
  100.     turtle.select(2)
  101.     turtle.dig()
  102.     turtle.down()
  103.  
  104. local xp, yp, zp = gps.locate()
  105. print("----------------------------")
  106. print("Turtla je vy výšce:" .. zp)
  107. print("----------------------------")
  108. print("Turtla X: " .. xp)
  109. print("Turtla Y: " .. yp)
  110.  
  111.     --provedeme kontrolu, zda neni natezen Coal v sl. 1,2
  112.     --pokud je natezen Coal, proved Refuel
  113.     local data1 = turtle.getItemDetail()
  114.  
  115.     if data1 then
  116.         print("Item name: ", data1.name)
  117.         dataX1 = data1.name
  118.         if dataX1 == "minecraft:coal" then
  119.             print("Nalezen coal. Provedu refuel.")
  120.             turtle.refuel()
  121.         end
  122.         print("Item damage value: ", data1.damage)
  123.         print("Item count: ", data1.count)
  124.     end
  125.  
  126.     local data2 = turtle.getItemDetail()
  127.     turtle.select(2)
  128.     if data2 then
  129.         print("Item name: ", data2.name)
  130.         dataX2 = data2.name
  131.         if dataX2 == "minecraft:coal" then
  132.             print("Nalezen coal. Provedu refuel.")
  133.             turtle.refuel()
  134.         end
  135.         print("Item damage value: ", data2.damage)
  136.         print("Item count: ", data2.count)
  137.     end
  138.     turtle.select(3)
  139.     -- Enderchest musi byt umistena ve slotu 3
  140.     --poloz Ender Chest a Slot 1,2 vyprazdni do Ender Chest
  141.     turtle.placeUp()
  142.     turtle.select(1)
  143.     turtle.dropUp()
  144.     turtle.select(2)
  145.     turtle.dropUp()
  146.     --vrat Ender Chest do slotu 3
  147.     turtle.select(3)
  148.     turtle.digUp()
  149.     a=a+1
  150.     print(a)
  151.  
  152. end
  153. turtle.forward()
  154.  
  155. --vyjedeme pro jistotu o 5 výše kvuli bedrocku
  156. turtle.up()
  157. turtle.up()
  158. turtle.up()
  159. turtle.up()
  160. turtle.up()
  161.  
  162. --vytezime pred Turtlou blok a najedeme dopředu, aby Turtla těžila i cestou nahoru
  163.  
  164. turtle.dig()
  165. turtle.forward()
  166. a=0
  167. print("Jedu nahoru")
  168.  
  169. -- cyklus pro vraceni
  170. for a=1,hlb,1 do
  171.     turtle.select(1)
  172.     turtle.digUp()
  173.     turtle.select(2)
  174.     turtle.dig()
  175.    
  176.     --provedeme kontrolu, zda neni natezen Coal v sl. 1,2
  177.     --pokud je natezen Coal, proved Refuel
  178.  
  179.     local data1b = turtle.getItemDetail()
  180.     turtle.select(1)
  181.     if data1b then
  182.         print("Item name: ", data1b.name)
  183.         dataX1b = data1b.name
  184.         if dataX1b == "minecraft:coal" then
  185.             print("Nalezen coal. Provedu refuel.")
  186.             turtle.refuel()
  187.         end
  188.         print("Item damage value: ", data1b.damage)
  189.         print("Item count: ", data1b.count)
  190.     end
  191.  
  192.     local data2b = turtle.getItemDetail()
  193.     turtle.select(2)
  194.     if data2b then
  195.         print("Item name: ", data2b.name)
  196.         dataX2b = data2b.name
  197.         if dataX2b == "minecraft:coal" then
  198.             print("Nalezen coal. Provedu refuel.")
  199.             turtle.refuel()
  200.         end
  201.         print("Item damage value: ", data2b.damage)
  202.         print("Item count: ", data2b.count)
  203.     end
  204.     turtle.select(3)
  205.     -- Enderchest musi byt umistena ve slotu 3
  206.     --poloz Ender Chest a Slot 1,2 vyprazdni do Ender Chest
  207.     turtle.placeUp()
  208.     turtle.select(1)
  209.     turtle.dropUp()
  210.     turtle.select(2)
  211.     turtle.dropUp()
  212.     --vrat Ender Chest do slotu 3
  213.     turtle.select(3)
  214.     turtle.digUp()
  215.     turtle.up()
  216.     a=a+1
  217.     print(a)
  218.  
  219. end
  220. --opakujeme tezbu v dalsim sloupci
  221. turtle.dig()
  222. turtle.forward()
  223. turtle.dig()
  224. turtle.forward()
  225. end
  226.  
  227. -- konec hlavního programu
  228. end
  229.  
  230.  
  231. start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement