akihex

enderC

Aug 2nd, 2014
302
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local cols = {colors.black, colors.gray, colors.lightGray, colors.white, colors.pink, colors.magenta, colors.purple, colors.red, colors.lightBlue, colors.blue, colors.cyan, colors.green, colors.lime, colors.yellow, colors.orange, colors.brown}
  2.  
  3. local ender = nil
  4. local coord = {}
  5.  
  6. local mon = peripheral.find("monitor")
  7.  
  8. function drawColor(color,row)
  9.   local x,y = mon.getCursorPos()
  10.  
  11.   local function draw()
  12.     mon.setBackgroundColor(color)
  13.     for i=1,3 do
  14.       coord[textutils.serialize({mon.getCursorPos()})] = {color,row}
  15.       mon.write(" ")
  16.     end
  17.     mon.setBackgroundColor(colors.black)
  18.     mon.write(" ")
  19.   end
  20.  
  21.   draw()
  22.   mon.setCursorPos(x,y+1)
  23.   draw()
  24.   mon.setCursorPos(x,y+2)
  25.   draw()
  26.   mon.setCursorPos(x+4,y)
  27. end
  28.  
  29. function drawUserInterface()
  30.   mon.setTextScale(0.5)
  31.   mon.clear()
  32.   mon.setCursorPos(1,1)
  33.   coord = {}
  34.  
  35.   local startX, startY = 4, 2
  36.   local offset = 4
  37.  
  38.   local function draw(row)
  39.     local _,Y = mon.getCursorPos()
  40.     for n,c in pairs(cols) do
  41.       if n == 9 then mon.setCursorPos(startX,Y+offset) end
  42.       --coord[textutils.serialize({mon.getCursorPos()})] = c
  43.       drawColor(c,row)
  44.     end
  45.   end
  46.  
  47.   mon.setCursorPos(startX,startY)
  48.   draw(1)
  49.   mon.setCursorPos(startX,startY + 8)
  50.   draw(2)
  51.   mon.setCursorPos(startX,startY + 16)
  52.   draw(3)
  53. end
  54.  
  55. function getColor(x,y,col1,col2,col3)
  56.   local col = coord[textutils.serialize({x,y})]
  57.   if not col or not col[1] or not col[2] then return col1,col2,col3 end
  58.   if col[2] == 1 then col1 = col[1]
  59.   elseif col[2] == 2 then col2 = col[1]
  60.   elseif col[2] == 3 then col3 = col[1]
  61.   end
  62.   return col1, col2, col3
  63. end
  64.  
  65. function waitForTouchEvent()
  66.   local event, side, monX, monY = os.pullEvent("monitor_touch")
  67.   ender = peripheral.wrap("right")
  68.   if not ender then ender = peripheral.wrap("front") end
  69.   if not ender then return end
  70.   col1, col2, col3 = getColor(monX,monY,ender.getColors())
  71.   print(col1," ",col2," ",col3)
  72.   ender.setColors(col1,col2,col3)
  73. end
  74.  
  75. while true do
  76.   drawUserInterface()
  77.   waitForTouchEvent()
  78.   sleep(0.2)
  79. end
Advertisement
Add Comment
Please, Sign In to add comment