Advertisement
matejdro

strip

Jul 22nd, 2014
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.90 KB | None | 0 0
  1. -- VERZIJA STRIP2 KI NE UPORABLJA DROP FUNKCIJE IN BREZ RESUPPLY MOŽNOSTI
  2.  
  3. -- CONFIG
  4.  
  5. kopajX = 7
  6. kopajY = 7
  7. kopajV = 4
  8.  
  9. torchVsakih = 5
  10. postaviTorche = true
  11.  
  12. nadaljuj = 0
  13.  
  14. -- ENDCONFIG
  15.  
  16. smerX = true
  17. smerY = true
  18.  
  19. kopajV = kopajV - 1
  20. kopajY = kopajY - 1
  21.  
  22. minFuel = (kopajX + kopajY + kopajV) * 1.5
  23. print("min goriva za vrnitev: " .. minFuel )
  24. sleep(1)
  25.  
  26. function primerjaj(prvi, drugi, modifier)
  27.     if modifier > 0 then
  28.         return prvi > drugi
  29.     else
  30.         return prvi < drugi
  31.     end
  32. end
  33.  
  34. function kopaj()
  35.     mover.naprej()
  36.     turtle.digUp()
  37.     turtle.digDown()
  38. end
  39.  
  40. function jePoln()
  41.     for i=1,14 do
  42.         if (turtle.getItemCount(i) < 1) then return false end
  43.     end
  44.    
  45.     return true
  46. end
  47.  
  48. function jePrazen()
  49.     for i=1,14 do
  50.         if (turtle.getItemCount(i) > 0) then return false end
  51.     end
  52.    
  53.     return true
  54. end
  55.  
  56. function izprazni()
  57.     leftX = mover.posX()
  58.     leftY = mover.posY()
  59.     leftV = mover.posV()
  60.     leftR = mover.dirN()
  61.    
  62.     mover.potuj(0,0,0)
  63.  
  64.     while not jePrazen() do
  65.         sleep(2)
  66.     end
  67.    
  68.     while turtle.getFuelLevel() < minFuel do
  69.         print("NI GORIVA!!!")
  70.  
  71.         turtle.select(16)
  72.  
  73.         if turtle.getItemCount(16) > 1 then
  74.             turtle.refuel(turtle.getItemCount(16) - 1)
  75.         else
  76.             sleep(5)
  77.         end
  78.     end
  79.  
  80.     mover.potuj(leftX,leftV,leftY)
  81.     mover.obrni(leftR)
  82. end
  83.  
  84.  
  85. function imaDovoljGoriva()
  86.     return turtle.getFuelLevel() > minFuel
  87. end
  88.  
  89. function robotNaprej()
  90.     if (mover.posV() == 0 and postaviTorche and (mover.posX() - 1) % torchVsakih == 0 and mover.posY() % torchVsakih == 0) then
  91.         turtle.select(15)
  92.         turtle.placeDown()
  93.     end
  94.  
  95.     turtle.select(1)
  96.     kopaj()
  97.    
  98.     coords = textutils.serialize({mover.posX(), mover.posV(), mover.posY(), mover.dirN(), smerX, smerY})
  99.     file = io.open("/stripPos", "w")
  100.     file:write(coords)
  101.     file:close()
  102.    
  103.     if jePoln() or not imaDovoljGoriva() then izprazni() end
  104. end
  105.  
  106. function moveY()
  107.     repeat
  108.         robotNaprej()
  109.     until (smerX and mover.posX() >= kopajX) or (not smerX and mover.posX() <= 1)
  110. end
  111.  
  112. mover.potuj(0,0,0)
  113.  
  114. -- if nadaljuj == 1 and fs.exists("/stripPos") then
  115. --  file = io.open("/stripPos")
  116. --  coords = textutils.unserialize(file:read("*l"))
  117. --  file:close()
  118.    
  119. --  mover.potuj(coords[1], coords[2], coords[3])
  120. --  mover.obrni(coords[4])
  121.    
  122. --  smerX = coords[5]
  123. --  smerY = coords[6]
  124. if nadaljuj > 0 then
  125.     mover.potuj(1, nadaljuj, 0)
  126. end
  127.  
  128. mover.obrni(1)
  129. kopaj()
  130.  
  131.  
  132. repeat
  133.     repeat
  134.         moveY()
  135.         if (smerY and mover.posY() < kopajY) or ((not smerY) and mover.posY() > 0) then
  136.             if (smerX == smerY) then
  137.                 mover.desno()
  138.                 kopaj()
  139.                 mover.desno()
  140.             else
  141.                 mover.levo()
  142.                 kopaj()
  143.                 mover.levo()
  144.             end
  145.             smerX = not smerX
  146.         else
  147.             mover.levo()
  148.             mover.levo()
  149.             smerX = not smerX
  150.  
  151.             break
  152.         end
  153.    
  154.     until false
  155.    
  156.     smerY = not smerY
  157.  
  158.     if (mover.posV() < kopajV) then
  159.         mover.gor()
  160.         mover.gor()
  161.         mover.gor()
  162.     else
  163.         break
  164.     end
  165. until false
  166.  
  167.  mover.potuj(0,0,0)
  168.  mover.obrni(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement