Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- 1 wide, 2 tall Advanced monitor on top of Advanced Computer. Bundled cable or MFR rednet cable out of bottom of Computer.
- -- Colour channels:
- -- White: mode switch. Redstone signal on = Auto mode, off = manual mode.
- -- Orange: Toggle to farm(drawbridges extending Cursed earth etc.)
- -- Magenta: Auto input channel. Input signal from ME level emitters etc. on the Magenta channel and this will control the Auto mode.
- mouseWidth = 0
- mouseHeight = 0
- monitor = peripheral.wrap("top")
- monitor.clear()
- monitor.setCursorPos(1,1)
- w,h=monitor.getSize()
- print(w)
- print(h)
- -- Draw buttons
- monitor.setCursorPos(2,2)
- monitor.write("Mode:")
- monitor.setBackgroundColour((colours.grey))
- monitor.setCursorPos(1,4)
- monitor.write(" AUTO ")
- monitor.setBackgroundColour((colours.grey))
- monitor.setCursorPos(1,6)
- monitor.write("Manual ")
- monitor.setBackgroundColour((colours.black))
- monitor.setCursorPos(1,7)
- monitor.write("_______")
- monitor.setBackgroundColour((colours.green))
- monitor.setCursorPos(1,9)
- monitor.write(" ON ")
- monitor.setBackgroundColour((colours.green))
- monitor.setCursorPos(1,11)
- monitor.write(" OFF ")
- monitor.setBackgroundColour((colours.black))
- -- Check click function
- function checkClickPosition()
- if mouseWidth > 1 and mouseWidth < 7 and mouseHeight == 9 then
- -- button ON clicked
- monitor.setBackgroundColour((colours.lime))
- monitor.setCursorPos(1,9)
- monitor.write(" ON ")
- monitor.setBackgroundColour((colours.green))
- monitor.setCursorPos(1,11)
- monitor.write(" OFF ")
- monitor.setBackgroundColour((colours.black))
- redstone.setBundledOutput("bottom", colors.orange)
- sleep(1)
- elseif mouseWidth > 1 and mouseWidth < 7 and mouseHeight == 11 then
- -- button OFF clicked
- monitor.setBackgroundColour((colours.green))
- monitor.setCursorPos(1,9)
- monitor.write(" ON ")
- monitor.setBackgroundColour((colours.lime))
- monitor.setCursorPos(1,11)
- monitor.write(" OFF ")
- monitor.setBackgroundColour((colours.black))
- redstone.setBundledOutput("bottom",0)
- sleep(1)
- end
- end
- redstone.setBundledOutput("bottom",0)
- while true do
- if (colors.test (redstone.getBundledInput("bottom"), colors.white)) == true then -- Auto mode
- monitor.setBackgroundColour((colours.red)) -- Switch mode to auto
- monitor.setCursorPos(1,4)
- monitor.write(" AUTO ")
- monitor.setBackgroundColour((colours.grey))
- monitor.setCursorPos(1,6)
- monitor.write("Manual ")
- monitor.setBackgroundColour((colours.grey)) --Grey out Manual buttons
- monitor.setCursorPos(1,9)
- monitor.write(" ON ")
- monitor.setBackgroundColour((colours.grey))
- monitor.setCursorPos(1,11)
- monitor.write(" OFF ")
- monitor.setBackgroundColour((colours.black))
- if (colors.test (redstone.getBundledInput("bottom"), colors.magenta)) == true then
- redstone.setBundledOutput("bottom", colors.orange)
- sleep(20)
- else
- redstone.setBundledOutput("bottom",0)
- sleep(0.5)
- end
- else -- Manual mode
- redstone.setBundledOutput("bottom",0) -- Default to off mode
- monitor.setBackgroundColour((colours.grey)) --Switch mode to Manual
- monitor.setCursorPos(1,4)
- monitor.write(" AUTO ")
- monitor.setBackgroundColour((colours.red))
- monitor.setCursorPos(1,6)
- monitor.write("Manual ")
- monitor.setBackgroundColour((colours.green)) -- light up manual buttons, highlight OFF
- monitor.setCursorPos(1,9)
- monitor.write(" ON ")
- monitor.setBackgroundColour((colours.lime))
- monitor.setCursorPos(1,11)
- monitor.write(" OFF ")
- monitor.setBackgroundColour((colours.black))
- repeat
- event,p1,p2,p3 = os.pullEvent()
- if event=="monitor_touch" then
- mouseWidth = p2 -- sets mouseWidth
- mouseHeight = p3 -- and mouseHeight
- checkClickPosition() -- this runs our function
- end
- until (colors.test (redstone.getBundledInput("bottom"), colors.white)) == true
- end
- end -- while
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement