Advertisement
serafim7

harvest 2 [OpenComputers]

Aug 26th, 2016
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.85 KB | None | 0 0
  1. --[[OpenComputers harvester by serafim  pastebin.com/BRYuwajf
  2.  
  3. по умолчанию обрабатывает поле:
  4. ширина 4, длинна 20, количество 5.
  5.  
  6. в 1 и 2 слот ложим семена пшеници,
  7. ставим над сундуком, даем роботу мотыгу
  8.  
  9. требования:
  10. инвентарь,солнечния панель
  11.  
  12. пример запуска:
  13. harvester
  14. ]]--
  15.  
  16. local lenght = 20   --длинна грядки
  17. local quantity = 5  --количество грядок
  18. local comeback = 24 --возврат к старту
  19. local delay = 3600  --ожидание в секундах
  20.  
  21. local com = require('component')
  22. local term = require('term')
  23.  
  24. local empty = true
  25.  
  26. if not com.isAvailable("robot") then
  27.   print("Только роботы могут использовать эту программу")
  28.   os.exit()
  29. end
  30. local r = require("robot")
  31. local invsize = r.inventorySize()
  32.  
  33. local function forward()
  34.   while not r.forward() do
  35.     r.swing()
  36.   end
  37. end
  38.  
  39. local function line()
  40.   for i = 1, lenght do
  41.     if (r.count(1) > 1) then
  42.       r.select(1)
  43.     else
  44.       r.select(2)
  45.     end
  46.     r.swingDown()
  47.     r.useDown()
  48.     r.placeDown()
  49.     if i ~= lenght then
  50.        forward()
  51.     end
  52.   end
  53. end
  54.  
  55. local function harvest()
  56.   r.setLightColor(0xFFFFFF)
  57.   term.clear()
  58.   term.write("Собираю урожай")
  59.   r.turnRight()
  60.   r.turnRight()
  61.   forward()
  62.   r.turnLeft()
  63.   for i = 1, quantity do
  64.     for i = 1, 2 do
  65.       line()
  66.       r.turnRight()
  67.       forward()
  68.       r.turnRight()
  69.       line()
  70.       if i == 1 then
  71.         r.turnLeft()
  72.         forward()
  73.         r.turnLeft()
  74.       end
  75.     end
  76.     if i == quantity then
  77.       r.turnRight()
  78.       for i = 1, comeback do
  79.         forward()
  80.       end
  81.       for i = 3, invsize do
  82.         if r.count(i) > 0 then
  83.           r.select(i)
  84.           if not r.dropDown() then
  85.             r.setLightColor(0xFF0000)
  86.             term.clear()
  87.             term.write("В сундуке нет места :(")
  88.             os.exit()
  89.           end
  90.         end
  91.       end
  92.       r.select(1)
  93.     else
  94.       r.turnLeft()
  95.       forward()
  96.       forward()
  97.       r.turnLeft()
  98.     end
  99.   end
  100. end
  101.  
  102. local function grubbing()
  103.   if r.durability() == nil or r.durability() < 0.03 then
  104.     if empty then
  105.       r.setLightColor(0xFF0000)
  106.       term.clear()
  107.       term.write("Нет мотыги, или она сломана !")
  108.       empty = false
  109.     end
  110.     os.sleep(20)
  111.     grubbing()
  112.     term.clear()
  113.     empty = true
  114.   end
  115. end
  116.  
  117. local function wait()
  118.   term.clear()
  119.   for i = delay, 1, -10 do
  120.     if i == delay then
  121.       term.write("осталось ждать "..delay.." секунд")
  122.     end
  123.     os.sleep(10)
  124.     term.clearLine()
  125.     term.write("осталось ждать "..(i-10).." секунд")
  126.   end
  127.   term.clear()
  128. end
  129.  
  130. while true do
  131.   grubbing()
  132.   harvest()
  133.   wait()
  134. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement