Advertisement
rhn

Cursed earth farm

rhn
May 31st, 2014
698
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.89 KB | None | 0 0
  1. -- 1 wide, 2 tall Advanced monitor on top of Advanced Computer. Bundled cable or MFR rednet cable out of bottom of Computer.
  2. -- Colour channels:
  3. -- White: mode switch. Redstone signal on = Auto mode, off = manual mode.
  4. -- Orange: Toggle to farm(drawbridges extending Cursed earth etc.)
  5. -- Magenta: Auto input channel. Input signal from ME level emitters etc. on the Magenta channel and this will control the Auto mode.
  6.  
  7. mouseWidth = 0
  8. mouseHeight = 0
  9.  
  10. monitor = peripheral.wrap("top")
  11.  
  12. monitor.clear()
  13.  
  14.  
  15. monitor.setCursorPos(1,1)
  16.  
  17. w,h=monitor.getSize()
  18.  
  19. print(w)
  20. print(h)
  21.  
  22. -- Draw buttons
  23. monitor.setCursorPos(2,2)
  24. monitor.write("Mode:")
  25.  
  26. monitor.setBackgroundColour((colours.grey))
  27. monitor.setCursorPos(1,4)
  28. monitor.write(" AUTO  ")
  29.  
  30. monitor.setBackgroundColour((colours.grey))
  31. monitor.setCursorPos(1,6)
  32. monitor.write("Manual ")
  33.  
  34. monitor.setBackgroundColour((colours.black))
  35. monitor.setCursorPos(1,7)
  36. monitor.write("_______")
  37.  
  38. monitor.setBackgroundColour((colours.green))
  39. monitor.setCursorPos(1,9)
  40. monitor.write("  ON   ")
  41.  
  42. monitor.setBackgroundColour((colours.green))
  43. monitor.setCursorPos(1,11)
  44. monitor.write("  OFF  ")
  45.  
  46. monitor.setBackgroundColour((colours.black))
  47.  
  48.  
  49.  
  50. -- Check click function
  51.  
  52. function checkClickPosition()
  53.   if mouseWidth > 1 and mouseWidth < 7 and mouseHeight == 9 then
  54.     -- button ON clicked
  55.     monitor.setBackgroundColour((colours.lime))
  56.     monitor.setCursorPos(1,9)
  57.     monitor.write("  ON   ")
  58.     monitor.setBackgroundColour((colours.green))
  59.     monitor.setCursorPos(1,11)
  60.     monitor.write("  OFF  ")
  61.     monitor.setBackgroundColour((colours.black))
  62.         redstone.setBundledOutput("bottom", colors.orange)
  63.     sleep(1)
  64.   elseif mouseWidth > 1 and mouseWidth < 7 and mouseHeight == 11 then
  65.     -- button OFF clicked
  66.     monitor.setBackgroundColour((colours.green))
  67.     monitor.setCursorPos(1,9)
  68.     monitor.write("  ON   ")
  69.     monitor.setBackgroundColour((colours.lime))
  70.     monitor.setCursorPos(1,11)
  71.     monitor.write("  OFF  ")
  72.     monitor.setBackgroundColour((colours.black))
  73.         redstone.setBundledOutput("bottom",0)
  74.     sleep(1)
  75.   end
  76. end
  77.  
  78. redstone.setBundledOutput("bottom",0)
  79.  
  80. while true do
  81.     if (colors.test (redstone.getBundledInput("bottom"), colors.white)) == true then -- Auto mode
  82.         monitor.setBackgroundColour((colours.red)) -- Switch mode to auto
  83.         monitor.setCursorPos(1,4)
  84.         monitor.write(" AUTO  ")
  85.         monitor.setBackgroundColour((colours.grey))
  86.         monitor.setCursorPos(1,6)
  87.         monitor.write("Manual ")
  88.         monitor.setBackgroundColour((colours.grey)) --Grey out Manual buttons
  89.         monitor.setCursorPos(1,9)
  90.         monitor.write("  ON   ")
  91.         monitor.setBackgroundColour((colours.grey))
  92.         monitor.setCursorPos(1,11)
  93.         monitor.write("  OFF  ")
  94.         monitor.setBackgroundColour((colours.black))
  95.         if (colors.test (redstone.getBundledInput("bottom"), colors.magenta)) == true then
  96.  
  97.             redstone.setBundledOutput("bottom", colors.orange)
  98.             sleep(20)
  99.         else
  100.             redstone.setBundledOutput("bottom",0)
  101.             sleep(0.5)
  102.         end
  103.     else -- Manual mode
  104.         redstone.setBundledOutput("bottom",0) -- Default to off mode
  105.         monitor.setBackgroundColour((colours.grey)) --Switch mode to Manual
  106.         monitor.setCursorPos(1,4)
  107.         monitor.write(" AUTO  ")
  108.         monitor.setBackgroundColour((colours.red))
  109.         monitor.setCursorPos(1,6)
  110.         monitor.write("Manual ")
  111.         monitor.setBackgroundColour((colours.green)) -- light up manual buttons, highlight OFF
  112.         monitor.setCursorPos(1,9)
  113.         monitor.write("  ON   ")
  114.         monitor.setBackgroundColour((colours.lime))
  115.         monitor.setCursorPos(1,11)
  116.         monitor.write("  OFF  ")
  117.         monitor.setBackgroundColour((colours.black))
  118.         repeat
  119.             event,p1,p2,p3 = os.pullEvent()
  120.                 if event=="monitor_touch" then
  121.                         mouseWidth = p2 -- sets mouseWidth
  122.                         mouseHeight = p3 -- and mouseHeight
  123.                         checkClickPosition() -- this runs our function
  124.                 end
  125.         until (colors.test (redstone.getBundledInput("bottom"), colors.white)) == true
  126.     end
  127.    
  128.  
  129. end -- while
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement