Advertisement
xbsktball10x

Untitled

Nov 30th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.86 KB | None | 0 0
  1.  
  2.  
  3. rednet.open("left")
  4.  
  5. if viewportAPI then os.unloadAPI("viewportAPI") end
  6. os.loadAPI("viewportAPI")
  7. if buttonAPI then os.unloadAPI("buttonAPI") end
  8. os.loadAPI("buttonAPI")
  9. if eventDispatcherAPI then os.unloadAPI("eventDispatcherAPI") end
  10. os.loadAPI("eventDispatcherAPI")
  11.  
  12.  
  13. viewportLeft = viewportAPI.new({term = peripheral.wrap("monitor_0")})
  14. viewportRight = viewportAPI.new({term = peripheral.wrap("monitor_1")})
  15.  
  16. buttonUp = buttonAPI.new({
  17. text = "up",
  18. x = buttonAPI.anchorLeft,
  19. y = buttonAPI.anchorTop,
  20. isSticky = true,
  21. width = buttonAPI.maxWidth,
  22. height = 1
  23. })
  24. viewportLeft:addElement(buttonUp)
  25.  
  26. buttonDown = buttonAPI.new({
  27. text = "down",
  28. x = buttonAPI.anchorLeft,
  29. y = buttonAPI.anchorBottom,
  30. isSticky = true,
  31. width = buttonAPI.maxWidth,
  32. height = 1
  33. })
  34. viewportLeft:addElement(buttonDown)
  35.  
  36. buttonLeft = buttonAPI.new({
  37. text = "left",
  38. x = buttonAPI.anchorLeft,
  39. y = buttonAPI.anchorTop,
  40. isSticky = true,
  41. width = 1,
  42. height = buttonAPI.maxHeight,
  43. isVertical = true
  44. })
  45. viewportRight:addElement(buttonLeft)
  46.  
  47. buttonRight = buttonAPI.new({
  48. text = "right",
  49. x = buttonAPI.anchorRight,
  50. y = buttonAPI.anchorTop,
  51. isSticky = true,
  52. width = 1,
  53. height = buttonAPI.maxHeight,
  54. isVertical = true
  55. })
  56. viewportRight:addElement(buttonRight)
  57.  
  58. testbtn = buttonAPI.new({
  59. text = "test",
  60. x = 5,
  61. y = 5,
  62. height = 1,
  63. width = 6,
  64. isSticky = false,
  65. backgroundColor = colors.green
  66. })
  67. viewportLeft:addElement(testbtn)
  68. viewportRight:addElement(testbtn)
  69.  
  70. viewportLeft:redraw()
  71. viewportRight:redraw()
  72.  
  73. handler = function(element, x, y)
  74. dx = 0
  75. dy = 0
  76. if element == buttonUp then
  77. dy = -1
  78. elseif element == buttonDown then
  79. dy = 1
  80. elseif element == buttonLeft then
  81. dx = -1
  82. elseif element == buttonRight then
  83. dx = 1
  84. elseif element == testbtn then
  85. testbtn.backgroundColor = testbtn.backgroundColor == colors.green and colors.red or colors.green
  86. else
  87. error("Unknown Button")
  88. end
  89. viewportLeft:move(dx, dy)
  90. viewportRight:move(dx, dy)
  91. return true -- requests redraw of current viewport
  92. end
  93.  
  94. buttonUp.callback = handler
  95. buttonDown.callback = handler
  96. buttonLeft.callback = handler
  97. buttonRight.callback = handler
  98. testbtn.callback = handler
  99.  
  100. eventDispatcherAPI.addFilteredHandler("monitor_touch", "monitor_0", function(event, side, xPos, yPos)
  101. redraw = viewportLeft:handleClick(xPos, yPos)
  102. if redraw then
  103. viewportRight:redraw()
  104. end
  105. end)
  106. eventDispatcherAPI.addFilteredHandler("monitor_touch", "monitor_1", function(event, side, xPos, yPos)
  107. redraw = viewportRight:handleClick(xPos, yPos)
  108. if redraw then
  109. viewportLeft:redraw()
  110. end
  111. end)
  112.  
  113. eventDispatcherAPI.addFilteredHandler("monitor_resize", "monitor_0", function()
  114. viewportLeft:redraw()
  115. end)
  116. eventDispatcherAPI.addFilteredHandler("monitor_resize", "monitor_1", function()
  117. viewportRight:redraw()
  118. end)
  119.  
  120. eventDispatcherAPI.runDispatchLoop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement