Advertisement
SergeyOnLine100

opencomputers 1.12.2 + AgriCraft (robot cross plants)

Nov 8th, 2020 (edited)
778
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.96 KB | None | 0 0
  1. local r = require("robot")
  2. local c = require("component")
  3. local ic = c.inventory_controller
  4.  
  5. function init()
  6. -- сундук должен быть напротив робота
  7. -- в нем должны быть семя, совок, жёрдочки см. ниже
  8. -- по правой стороне - назад от робота 3 грядки
  9. -- слева от робота зарядное для робота
  10. -- напротив центральной грядки через клетку
  11. -- нужен сундук для семян и готовой продукции
  12.   r.select(13)
  13. -- семя для скрещивания до 10/10/10
  14.   r.suck(1)
  15. -- садовый совок AgriCraft
  16.   r.suck(1)
  17. -- жёрдочки AgriCraft
  18.   r.suck(64)
  19. -- жёрдочки AgriCraft
  20.   r.suck(64)
  21.   return nil
  22. end
  23.  
  24. function r_work(scena)
  25. -- действие [F - вперед][RL - поворот]
  26. -- [P - установка жёрдочки][X - перекрестие]
  27. -- [G - забрать/поставить семя лопаткой]
  28. -- [E - посадить семя][U - ткнуть правой кнопкой]
  29. -- [K - ткнуть левой кнопкой очистить клетку]
  30. -- [Z - очистить первые 4 слота робота в инвентарь за ним]
  31.  
  32.   for i=1,scena.len(scena) do
  33.     if (scena.sub(scena,i,i) == "F") then r.forward() end
  34.     if (scena.sub(scena,i,i) == "R") then r.turnRight() end
  35.     if (scena.sub(scena,i,i) == "L") then r.turnLeft() end
  36.     if (scena.sub(scena,i,i) == "U") then r.use() end
  37.     if (scena.sub(scena,i,i) == "K") then r.swing() end
  38.     if (scena.sub(scena,i,i) == "E") then
  39.        -- посадить семя либо 13 слота либо с лопаты
  40.        r.select(13)
  41.        if (r.count() > 0) then
  42.          ic.equip()
  43.          r.use()
  44.        else
  45.          r_work("G")         
  46.        end
  47.     end
  48.     if (scena.sub(scena,i,i) == "G") then
  49.        r.select(14)
  50.        ic.equip()
  51.        r.use()
  52.        ic.equip()
  53.     end
  54.     if (scena.sub(scena,i,i) == "P") then
  55.        r.select(15)
  56.        if (r.count()>0) then r.place() else
  57.           r.select(16)
  58.           if (r.count()>0) then r.place() end
  59.        end
  60.     end
  61.     if (scena.sub(scena,i,i) == "Z") then  
  62.       r.turnAround()
  63.       for j=1,4 do
  64.         r.select(j)
  65.         if (r.count()>0) then
  66.           if (r.compareTo(16)) then
  67.             r.transferTo(15)
  68.           end
  69.         end
  70.       r.drop(64)
  71.       end
  72.       r.turnAround()
  73.     end
  74.     if (scena.sub(scena,i,i) == "X") then
  75.        r.select(15)
  76.        if (r.count() == 0) then
  77.          r.select(16)
  78.        end
  79.        ic.equip()
  80.        r.use()
  81.        r.use()
  82.        ic.equip()
  83.     end
  84.   end
  85.  
  86.   return nil
  87. end
  88.  
  89. function wait_res()
  90.   r.select(1)
  91.   while true do
  92.     r.use()
  93.     if (r.count()>0) then break end
  94.   end  
  95.   return nil
  96. end
  97.  
  98. function wait_resX()
  99.   r.select(14)
  100.   ic.equip()
  101.   while true do
  102.     if r.use(0,true) then break end
  103.   end
  104.   ic.equip()
  105.   return nil
  106. end
  107.  
  108.  
  109. -- в сундуке должны лежать 1 семя, 1 лопатка, 2 стака жёрдочек
  110. init()
  111.  
  112. for zz=1,25 do
  113.     print(zz)
  114.     -- ставим 3 жёрдочки и 1 семя с лопаты
  115.     r_work("RPRFLPRFLPELFFR")
  116.  
  117.     -- ждем первого урожая
  118.     wait_res()
  119.     print("выросло что то готовим скрещивание")
  120.  
  121.     -- готовим скрещивание
  122.     r_work("RFLKZX")
  123.  
  124.     -- ждем урожая скрещивания
  125.     wait_resX()
  126.     print("выросло что то и насажено на совок")
  127.  
  128.     -- ломаем все и готовим грядку к следующему скрещиванию
  129.     r.select(1)
  130.     r_work("KLFRKRFFLKLFRZLF")
  131.    
  132. end
  133.  
  134. -- окончание снимаем последнее зерно с лопаты
  135. -- и складываем обратно все ингридиенты
  136.     r_work("RPEKRZ")
  137.     r.turnAround()
  138.     for j=1,3 do
  139.       r.select(13+j)
  140.       r.drop(64)   
  141.     end
  142.    
  143. print("закончил выращивать, готов к работе!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement