Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. --[[
  2. red = door down
  3. blue = door up
  4. black = door back
  5. white = door fwd
  6. orange = seeder fwd
  7. yellow = seeder back
  8. lime = seeder up
  9. cyan = seeder down
  10. light blue = deploy!
  11. gray = hide up
  12. light gray = hide down
  13. brown = hide back
  14. purple = hide fwd
  15. magenta = water harvest
  16. --]]
  17.  
  18. local out = "back"
  19. local dDown = colors.red
  20. local dUp = colors.blue
  21. local dBackwd = colors.black
  22. local dFwd = colors.white
  23. local sFwd = colors.orange
  24. local sBackwd = colors.yellow
  25. local sUp = colors.lime
  26. local sDown = colors.cyan
  27. local deployer = colors.lightBlue
  28. local hUp = colors.gray
  29. local hDown = colors.lightGray
  30. local hBackwd = colors.brown
  31. local hFwd = colors.purple
  32. local wHarvest = colors.magenta
  33.  
  34. -- WATER HARVEST
  35. function Harvest()
  36.     rs.setBundledOutput(out, wHarvest)
  37.     sleep(70)
  38.     rs.setBundledOutput(out, 0)
  39.     sleep(1)
  40. end
  41.  
  42. -- DEPLOYER
  43. function Deploy()
  44.     rs.setBundledOutput(out, deployer)
  45.     sleep(0.1)
  46.     rs.setBundledOutput(out, 0)
  47.     sleep(1)
  48. end
  49.  
  50. -- SEEDER UP
  51. function msUp()
  52.     rs.setBundledOutput(out, sUp)
  53.     sleep(0.1)
  54.     rs.setBundledOutput(out, 0)
  55.     sleep(1)
  56. end
  57.  
  58. -- SEEDER DOWN
  59. function msDown()
  60.     rs.setBundledOutput(out, sDown)
  61.     sleep(0.1)
  62.     rs.setBundledOutput(out, 0)
  63.     sleep(1)
  64. end
  65.  
  66. -- SEEDER FWD
  67. function msForward()
  68.     rs.setBundledOutput(out, sFwd)
  69.     sleep(0.1)
  70.     rs.setBundledOutput(out, 0)
  71.     sleep(1)
  72. end
  73.  
  74. -- SEEDER BACK
  75. function msBack()
  76.     rs.setBundledOutput(out, sBackwd)
  77.     sleep(0.1)
  78.     rs.setBundledOutput(out, 0)
  79.     sleep(1)
  80. end
  81.  
  82. -- DOOR UP
  83. function mdUp()
  84.     rs.setBundledOutput(out, dUp)
  85.     sleep(0.1)
  86.     rs.setBundledOutput(out, 0)
  87.     sleep(1)
  88. end
  89.  
  90. -- DOOR DOWN
  91. function mdDown()
  92.     rs.setBundledOutput(out, dDown)
  93.     sleep(0.1)
  94.     rs.setBundledOutput(out, 0)
  95.     sleep(1)
  96. end
  97.  
  98. -- DOOR FWD
  99. function mdForward()
  100.     rs.setBundledOutput(out, dFwd)
  101.     sleep(0.1)
  102.     rs.setBundledOutput(out, 0)
  103.     sleep(1)
  104. end
  105.  
  106. -- DOOR BACK
  107. function mdBack()
  108.     rs.setBundledOutput(out, dBackwd)
  109.     sleep(0.1)
  110.     rs.setBundledOutput(out, 0)
  111.     sleep(1)
  112. end
  113.  
  114. -- HIDE UP
  115. function mhUp()
  116.     rs.setBundledOutput(out, hUp)
  117.     sleep(0.1)
  118.     rs.setBundledOutput(out, 0)
  119.     sleep(1)
  120. end
  121.  
  122. -- HIDE DOWN
  123. function mhDown()
  124.     rs.setBundledOutput(out, hDown)
  125.     sleep(0.1)
  126.     rs.setBundledOutput(out, 0)
  127.     sleep(1)
  128. end
  129.  
  130. -- HIDE FWD
  131. function mhForward()
  132.     rs.setBundledOutput(out, hFwd)
  133.     sleep(0.1)
  134.     rs.setBundledOutput(out, 0)
  135.     sleep(1)
  136. end
  137.  
  138. -- HIDE BACK
  139. function mhBack()
  140.     rs.setBundledOutput(out, hBackwd)
  141.     sleep(0.1)
  142.     rs.setBundledOutput(out, 0)
  143.     sleep(1)
  144. end
  145.  
  146. function openDoor()
  147.     -- 3x down, 4x back
  148.     mdDown()
  149.     mdDown()
  150.     mdDown()
  151.     mdBack()
  152.     mdBack()
  153.     mdBack()
  154.     mdBack()
  155. end
  156.  
  157. function closeDoor()
  158.     -- 4x fwd, 3x up
  159.     mdForward()
  160.     mdForward()
  161.     mdForward()
  162.     mdForward()
  163.     mdUp()
  164.     mdUp()
  165.     mdUp()
  166. end
  167.  
  168. function hideS()
  169.     -- 7x down, 4x back
  170.     mhDown()
  171.     mhDown()
  172.     mhDown()
  173.     mhDown()
  174.     mhDown()
  175.     mhDown()
  176.     mhDown()
  177.     mhBack()
  178.     mhBack()
  179.     mhBack()
  180.     mhBack()
  181. end
  182.  
  183. function unhideS()
  184.     -- 4x fwd, 7x up
  185.     mhForward()
  186.     mhForward()
  187.     mhForward()
  188.     mhForward()
  189.     mhUp()
  190.     mhUp()
  191.     mhUp()
  192.     mhUp()
  193.     mhUp()
  194.     mhUp()
  195.     mhUp()
  196. end
  197.  
  198. function seedOneField()
  199.     msForward()
  200.     Deploy()
  201.     msForward()
  202.     Deploy()
  203.     msForward()
  204.     Deploy()
  205.     msForward()
  206.     Deploy()
  207.     msForward()
  208.     Deploy()
  209.     msForward()
  210.     Deploy()
  211.     msForward()
  212.     Deploy()
  213. end
  214.  
  215. function seedAll()
  216.     msForward()
  217.     msForward()
  218.     seedOneField()
  219.     msUp()
  220.     seedOneField()
  221.     msUp()
  222.     seedOneField()
  223.     msUp()
  224.     seedOneField()
  225.     msUp()
  226.     seedOneField()
  227.     msUp()
  228.     seedOneField()
  229. end
  230.  
  231. function sReturn()
  232.     msBack()
  233.     msBack()
  234.     msBack()
  235.     msBack()
  236.     msBack()
  237.     msBack()
  238.     msBack()
  239.     msDown()
  240.     msBack()
  241.     msBack()
  242.     msBack()
  243.     msBack()
  244.     msBack()
  245.     msBack()
  246.     msBack()
  247.     msDown()
  248.     msBack()
  249.     msBack()
  250.     msBack()
  251.     msBack()
  252.     msBack()
  253.     msBack()
  254.     msBack()
  255.     msDown()
  256.     msBack()
  257.     msBack()
  258.     msBack()
  259.     msBack()
  260.     msBack()
  261.     msBack()
  262.     msBack()
  263.     msDown()
  264.     msBack()
  265.     msBack()
  266.     msBack()
  267.     msBack()
  268.     msBack()
  269.     msBack()
  270.     msBack()
  271.     msDown()
  272.     msBack()
  273.     msBack()
  274.     msBack()
  275.     msBack()
  276.     msBack()
  277.     msBack()
  278.     msBack()
  279.     msBack()
  280.     msBack()
  281. end
  282.  
  283. function doEverything()
  284.     openDoor()
  285.     unhideS()
  286.     seedAll()
  287.     sReturn()
  288.     hideS()
  289.     closeDoor()
  290. end
  291.  
  292. function printMenu()
  293.     local hhline    = "============================"
  294.     local hline     = "----------------------------"
  295.    
  296.     term.clear()
  297.     term.setCursorPos(1,1)
  298.    
  299.     print(hhline)
  300.     print("|| Seeder control panel   ||")
  301.     print(hline)
  302.     print("| Available operations:    |")
  303.     print("| 1. Seed all (fullauto)   |")
  304.     print("| 2. Seed all (refill pos) |")
  305.     print("| 3. Refill position       |")
  306.     print("| 4. Park seeder           |")
  307.     print("| 5. Open door             |")
  308.     print("| 6. Close door            |")
  309.     print("| 7. Harvest               |")
  310.     print(hline)
  311. end
  312.  
  313. function input()
  314.     local validChoice = false
  315.     local choice = 0
  316.     while not validChoice do
  317.         print("Please make your choice:")
  318.         local input = tonumber(read())
  319.         if input ~= 1 and input ~= 2 and input ~= 3 and input ~= 4 and input ~= 5 and input ~= 6 and input ~= 7 then
  320.             print("Invalid choice, try again.")
  321.             validChoice = false
  322.         else
  323.             choice = input
  324.             validChoice = true
  325.         end
  326.     end
  327.     return choice
  328. end
  329.  
  330. function doChoice(choice)
  331.    
  332.     choice = tonumber(choice)
  333.    
  334.     if choice == 1 then
  335.         doEverything()
  336.     elseif choice == 2 then
  337.         seedAll()
  338.         sReturn()
  339.     elseif choice == 3 then
  340.         --if not doorIsOpen then
  341.             openDoor()
  342.         --end
  343.         --if sIsHidden then
  344.             unhideS()
  345.         --end
  346.     elseif choice == 4 then
  347.         --if doorIsOpen and not sIsHidden then
  348.             hideS()
  349.         --end
  350.     elseif choice == 5 then
  351.         --if not doorIsOpen then
  352.             openDoor()
  353.         --end
  354.     elseif choice == 6 then
  355.         --if doorIsOpen then
  356.             closeDoor()
  357.         --end
  358.     elseif choice == 7 then
  359.         Harvest()
  360.     end
  361. end
  362.  
  363. function main()
  364.     while true do
  365.         printMenu()
  366.         local usrInput = input()
  367.         doChoice(usrInput)
  368.     end
  369. end
  370.  
  371. main()