Guest User

startup

a guest
Apr 30th, 2013
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.58 KB | None | 0 0
  1. m = peripheral.wrap("top")
  2. x,y = m.getSize()
  3. rednet.open("bottom")
  4.  
  5. --Table to hold turtle information
  6. -- Label = id, xmin, xmax, ymin, ymax, page, active
  7. local turtle = {
  8.     ["Quarry 1"] = { id = 19, xmin = 2, xmax = 11, ymin = 4, ymax = 5, page = 1, active = false },
  9.     ["Quarry 2"] = { id = 18, xmin = 2, xmax = 11, ymin = 6, ymax = 7, page = 1, active = false },
  10.     ["Branch 1"] = { id = 22, xmin = 2, xmax = 11, ymin = 8, ymax = 9, page = 1, active = false },
  11.     ["Branch 2"] = { id = 20, xmin = 2, xmax = 11, ymin = 10, ymax = 11, page = 1, active = false },
  12.     ["Branch 3"] = { id = 29, xmin = 2, xmax = 11, ymin = 4, ymax = 5, page = 2, active = false },
  13.     ["Branch 4"] = { id = 30, xmin = 2, xmax = 11, ymin = 6, ymax = 7, page = 2, active = false },
  14.     ["Branch 5"] = { id = 31, xmin = 2, xmax = 11, ymin = 8, ymax = 9, page = 2, active = false },
  15.     ["Branch 6"] = { id = 32, xmin = 2, xmax = 11, ymin = 10, ymax = 11, page = 2, active = false },
  16.  
  17. }
  18.  
  19. --Table to hold GUI. (Buttons)
  20. local menu = {
  21. --   Name,  xmin, xmax, ymin, ymax, active
  22.     ["Prev"] = { xmin = 1, xmax = 5, ymin = 12, ymax = 13, active = false },
  23.     ["Next"] = { xmin = 9, xmax = 13, ymin = 12, ymax = 13, active = false },
  24.    
  25. }
  26.  
  27. -- Function to write to specified points
  28. -- using arguments.
  29. function writeTo(x,y,bColor,tColor,text)
  30.    local bColor = bColor or colors.black
  31.    local tColor = tColor or colors.white
  32.    m.setCursorPos(x,y)
  33.    m.setBackgroundColor(bColor)
  34.    m.setTextColor(tColor)
  35.    m.write(text)
  36.    m.setTextColor(colors.white)
  37.    m.setBackgroundColor(colors.black)
  38. end
  39.  
  40. -- Centers text on y line.
  41. function centerPrint(text, tColor, bColor, y)
  42.     local mx,my = m.getSize()
  43.     local xPos = math.floor((mx/2) - (#text/2))
  44.     local tColor = tColor or colors.white
  45.     local bColor = bColor or colors.black
  46.       m.setTextColor(tColor)
  47.       m.setBackgroundColor(bColor)
  48.       m.setCursorPos(xPos,y)
  49.       m.write(text)
  50.       m.setBackgroundColor(colors.black)
  51.       m.setTextColor(colors.white)
  52.       m.setCursorPos(1,y+1)
  53. end
  54.  
  55. -- Determines if rednet is enabled or not.
  56. function rEnabled()
  57.     local rColor
  58.       if rednet.isOpen("bottom") then
  59.          rColor = colors.lime
  60.       else
  61.          rColor = colors.red
  62.          rednet.open("bottom")
  63.       end
  64.     writeTo(24,12,rColor,colors.white,"Rednet")
  65. end
  66.  
  67.  
  68. -- Draws main menu.
  69. function drawMain()
  70.     m.clear()
  71.     local mx,my = m.getSize()
  72.     centerPrint("Random List", colors.lime, colors.black, 1)
  73.     centerPrint(string.rep("=",x+2), colors.lime, colors.black,2)
  74.     writeTo(13,4,colors.black,colors.lime,"+")
  75.     m.write(string.rep("-",15))
  76.     writeTo(x,4,colors.black,colors.lime,"+")
  77.     m.setCursorPos(13,5)
  78.      for i = 5,10 do
  79.         m.write("|"..string.rep(" ",15).."|")
  80.         m.setCursorPos(13,i)
  81.      end
  82.     writeTo(13,10,colors.black,colors.lime,"+")
  83.     m.write(string.rep("-",15))
  84.     writeTo(x,10,colors.black,colors.lime,"+")
  85.     writeTo(14,5,colors.black,colors.lime,"Fuel:")
  86.     writeTo(14,6,colors.black,colors.gray, string.rep("-",15))
  87.     writeTo(14,7,colors.black,colors.lime,"Status:")
  88.     writeTo(14,8,colors.black,colors.gray, string.rep("-",15))
  89.     writeTo(14,9,colors.black,colors.lime,"ID:")
  90.     rEnabled()
  91.       for k,v in pairs(menu) do
  92.           writeTo(v.xmin, v.ymin, colors.black, colors.lime,k)
  93.       end
  94. end
  95.  
  96. -- Draws the buttons for turtles and the buttons
  97. function pageOne()
  98.   m.clear()
  99.   drawMain()
  100.     for k,v in pairs(turtle) do
  101.         if v.page == 1 then
  102.             writeTo(v.xmin,v.ymin,colors.black,colors.purple,k)
  103.         end
  104.     end
  105. end
  106.  
  107. --Draws page 2 of turtle info
  108. function pageTwo()
  109.   m.clear()
  110.   drawMain()
  111.     for k,v in pairs(turtle) do
  112.         if v.page == 2 then
  113.             writeTo(v.xmin, v.ymin, colors.black, colors.purple,k)
  114.         end
  115.     end
  116. end
  117.  
  118.  
  119. --Check for valid click
  120. function checkTouch()
  121.  local e,side,x,y = os.pullEvent("monitor_touch")
  122.   for k,v in pairs(turtle) do
  123.      if y<=v.ymax and y>=v.ymin and x<=v.xmax and x>=v.xmin then
  124.             for i = 1,2 do
  125.                 v.active = not v.active
  126.                 toggleButton()
  127.                 sleep(0.2)
  128.             end
  129.             print(k)
  130.             print(x..":"..y)
  131.      end
  132.   end
  133.   --determines where you clicked for next/prev menu
  134.   for k,v in pairs(menu) do
  135.      if y<=v.ymax and y>=v.ymin and x<=v.xmax and x>=v.xmin then
  136.           for i = 1,2 do
  137.               v.active = not v.active
  138.               toggleButton()
  139.               sleep(0.2)
  140.           end
  141.           print(k)
  142.           print(x..":"..y)
  143.             if k == "Next" then
  144.                pageTwo()
  145.                print(k)
  146.             elseif k == "Prev" then
  147.                pageOne()
  148.                print(k)
  149.             end
  150.      end
  151.   end
  152. end
  153.  
  154. --Toggles button colors
  155. function toggleButton()
  156.    local bColor
  157.    local tColor
  158.       for k,v in pairs(turtle) do
  159.         local on = v.active
  160.             if on then
  161.                 bColor = colors.purple
  162.                 tColor = colors.lime
  163.             else
  164.                 bColor = colors.black
  165.                 tColor = colors.purple
  166.             end
  167.             writeTo(v.xmin,v.ymin,bColor,tColor,k)
  168.      end
  169.      for k,v in pairs(menu) do
  170.          local on = v.active
  171.              if on then
  172.                  bColor = colors.lime
  173.                  tColor = colors.purple
  174.              else
  175.                  bColor = colors.black
  176.                  tColor = colors.lime
  177.              end
  178.              writeTo(v.xmin,v.ymin,bColor,tColor,k)
  179.     end
  180. end
  181.  
  182. while true do
  183.     drawMain()
  184.     screen()
  185.     checkTouch()
  186. end
Advertisement
Add Comment
Please, Sign In to add comment