Advertisement
koki2000

monitor button

Aug 14th, 2016
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.21 KB | None | 0 0
  1. mon = peripheral.wrap("top")
  2.  
  3. signal = 0
  4. local gomb = {}
  5. term.clear()
  6. gomb[1] = {x = 1, y = 1, x2 = 3, y2 = 1, color = colors.red, dcolor = colors.red, szoveg = "a", value = 1}
  7. gomb[2] = {x = 5, y = 1, x2 = 7, y2 = 1, color = colors.yellow, dcolor = colors.yellow, szoveg = "b", value = 0}
  8. gomb[3] = {x = 9, y = 1, x2 = 11, y2 = 1, color = colors.green, dcolor = colors.green, szoveg = "c", value = 0}
  9. gomb[4] = {x = 1, y = 3, x2 = 3, y2 = 3, color = colors.orange, dcolor = colors.orange, szoveg = "d", value = 0}
  10. gomb[5] = {x = 5, y = 3, x2 = 7, y2 = 3, color = colors.magenta, dcolor = colors.magenta, szoveg = "e", value = 0}
  11. gomb[6] = {x = 9, y = 3, x2 = 11, y2 = 3, color = colors.cyan, dcolor = colors.cyan, szoveg = "f", value = 0}
  12. gomb[7] = {x = 41, y = 1, x2 = 43, y2 = 1, color = 2, dcolor = 2, szoveg = "1", value = 0}
  13. gomb[8] = {x = 45, y = 1, x2 = 47, y2 = 1, color = 4, dcolor = 4, szoveg = "2", value = 0}
  14. gomb[9] = {x = 49, y = 1, x2 = 51, y2 = 1, color = 8, dcolor = 8, szoveg = "3", value = 0}
  15. gomb[10] = {x = 41, y = 3, x2 = 43, y2 = 3, color = 16, dcolor = 16, szoveg = "4", value = 0}
  16.  
  17.  
  18. function tclr()
  19.  mon.clear()
  20.  mon.setCursorPos(1,1)
  21. end
  22.  
  23. function kirajzol()
  24.  mon.clear()
  25.  for i = 1, #gomb do
  26.   for j = 0 + gomb[i].y, gomb[i].y2 do
  27.    for k = 0 + gomb[i].x, gomb[i].x2 do
  28.     mon.setCursorPos(k, j)
  29.     mon.setBackgroundColor(gomb[i].color)
  30.     mon.write(" ")
  31.    end
  32.   end
  33.   mon.setCursorPos(gomb[i].x+1, gomb[i].y)
  34.   mon.write(gomb[i].szoveg)
  35.  end
  36.   mon.setBackgroundColor(colors.black)
  37. end
  38.  
  39. function paint()
  40.  mon.clear()
  41.  for i = 1, #gomb do
  42.   paintutils.drawFilledBox(gomb[i].x, gomb[i].y, gomb[i].x2, gomb[i].y2, gomb[i].color)
  43.   mon.setCursorPos(gomb[i].x+1, gomb[i].y)
  44.   mon.write(gomb[i].szoveg)
  45.  end
  46. end
  47.  
  48. function click(xpos, ypos, xs, ys, xe, ye)
  49.  if xpos < xs or xpos > xe or ypos < ys or ypos > ye then
  50.   return false
  51.  else
  52.   return true
  53.  end
  54. end
  55.  
  56. function setter(ertek, xpos, ypos, i, xs, ys, xe, ye)
  57.   mon.setBackgroundColor(colors.black)
  58.   mon.setTextColor(colors.white)
  59.  if ertek then
  60.   if gomb[i].color == gomb[i].dcolor then
  61.    esemeny(i)
  62.    gomb[i].color = colors.lime
  63.   else
  64.    esemeny(i)
  65.    gomb[i].color = gomb[i].dcolor
  66.   end
  67.  else
  68.   mon.setCursorPos(xpos, ypos)
  69.   mon.write("x")
  70.  end
  71. end
  72.  
  73. function esemeny(i)
  74.  if gomb[i].color == gomb[i].dcolor then
  75.   if i == 1 then
  76.    rs.setOutput("left", true)
  77.   elseif i == 2 then
  78.    rs.setOutput("right", true)
  79.   elseif i == 3 then
  80.    rednet.broadcast("open")
  81.   elseif i == 4 then
  82.    redstone.setAnalogOutput("left", signal)
  83.   elseif i == 9 then
  84.    signal = 3
  85.   end
  86.  else
  87.   if i == 1 then
  88.    rs.setOutput("left", false)
  89.   elseif i == 2 then
  90.    rs.setOutput("right", false)
  91.   elseif i == 3 then
  92.    rednet.broadcast("close")
  93.   elseif i == 4 then
  94.    redstone.setAnalogOutput("left", 0)
  95.   elseif i == 9 then
  96.    signal = 0
  97.   end
  98.  end
  99. end
  100.  
  101. while true do
  102. kirajzol()
  103. local event, button, xpos, ypos = os.pullEvent("monitor_touch")
  104.  for i=1, #gomb do
  105.   if click(xpos, ypos, gomb[i].x, gomb[i].y, gomb[i].x2, gomb[i].y2) then
  106.    setter(true, xpos, ypos, i, gomb[i].x, gomb[i].y, gomb[i].x2, gomb[i].y2)
  107.   else
  108.    setter(false, xpos, ypos, i, gomb[i].x, gomb[i].y, gomb[i].x2, gomb[i].y2)
  109.   end
  110.  end
  111. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement