Advertisement
NanoBob

Digit Lock

Jun 26th, 2014
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.16 KB | None | 0 0
  1. monSide="back"
  2. m=peripheral.wrap(monSide)
  3. redstoneSide="right"
  4.  
  5. code="12345"
  6. inputs={}
  7.  
  8. function drawNumpad()
  9.     m.clear()
  10.     clearInput()
  11.     m.setBackgroundColor(128)
  12.     m.setCursorPos(2,1)
  13.     m.write("     ")
  14.    
  15.     m.setBackgroundColor(256)
  16.     m.setCursorPos(1,1)
  17.     m.write(" ")
  18.     m.setCursorPos(7,1)
  19.     m.write(" ")
  20.     m.setCursorPos(1,2)
  21.     m.write("       ")
  22.    
  23.     m.setBackgroundColor(32768)
  24.     m.setCursorPos(2,2)
  25.     m.write("1 2 3")
  26.     m.setCursorPos(2,3)
  27.     m.write("4 5 6")
  28.     m.setCursorPos(2,4)
  29.     m.write("7 8 9")
  30.     m.setCursorPos(2,5)
  31.     m.write("  0  ")
  32.    
  33.    
  34.     m.setBackgroundColor(256)
  35.     m.setCursorPos(1,3)
  36.     m.write(" ")
  37.     m.setCursorPos(1,4)
  38.     m.write(" ")
  39.     m.setCursorPos(1,5)
  40.     m.write(" ")
  41.     m.setCursorPos(7,3)
  42.     m.write(" ")
  43.     m.setCursorPos(7,4)
  44.     m.write(" ")
  45.     m.setCursorPos(7,5)
  46.     m.write(" ")
  47.    
  48.     m.setBackgroundColor(32)
  49.     m.setCursorPos(6,5)
  50.     m.write("Ok")
  51.    
  52.     m.setBackgroundColor(16384)
  53.     m.setCursorPos(1,5)
  54.     m.write("C ")
  55.    
  56. end
  57.  
  58.  
  59.  
  60.  
  61. function inputNumber()
  62.     event,side,x,y=os.pullEvent("monitor_touch")
  63.     if x==2 and y==2 then
  64.         digit=1
  65.     elseif x==4 and y==2 then
  66.         digit=2
  67.     elseif x==6 and y==2 then
  68.         digit=3
  69.     elseif x==2 and y==3 then
  70.         digit=4
  71.     elseif x==4 and y==3 then
  72.         digit=5
  73.     elseif x==6 and y==3 then
  74.         digit=6
  75.     elseif x==2 and y==4 then
  76.         digit=7
  77.     elseif x==4 and y==4 then
  78.         digit=8
  79.     elseif x==6 and y==4 then
  80.         digit=9
  81.     elseif x==4 and y==5 then
  82.         digit=0
  83.     elseif x>=2 and y==5 then
  84.         digit="ok"
  85.     elseif x<=6 and y==5 then
  86.         digit="clear"      
  87.     end
  88.    
  89.     if digit=="ok" then
  90.         checkNumber()
  91.     elseif digit=="clear" then
  92.         clearInput()
  93.     else
  94.         if #inputs<5 then
  95.             inputs[#inputs+1]=digit
  96.             m.setBackgroundColor(128)
  97.             m.setCursorPos(#inputs+2,1)
  98.             m.write("*")
  99.         end
  100.     end
  101.    
  102. end
  103.  
  104.  
  105.  
  106. function checkNumber()
  107.     input=""
  108.     for id,number in pairs(inputs) do
  109.         input=input..number
  110.     end
  111.     if input==code then
  112.         redstone.setOutput(redstoneSide,true)
  113.         sleep(5)
  114.         redstone.setOutput(redstoneSide,false)
  115.         clearInput()
  116.     else
  117.         clearInput()
  118.     end
  119.    
  120.    
  121. end
  122.  
  123. function clearInput()
  124.     inputs={}
  125.     m.setCursorPos(2,1)
  126.     m.setBackgroundColor(128)
  127.     m.write("     ")
  128. end
  129.  
  130. drawNumpad()
  131.  
  132. while true do
  133.     inputNumber()
  134. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement