Advertisement
Pinkishu

anvilTest

Jan 19th, 2013
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.97 KB | None | 0 0
  1. dofile("graph")
  2.  
  3. local colorToggler = {}
  4. colorToggler.toggled = false
  5. colorToggler.color1 = colors.red
  6. colorToggler.color2 = colors.pink
  7.  
  8. function colorToggler:getColor()
  9.  
  10.     self.toggled = not self.toggled
  11.     return (self.toggled and self.color1 or self.color2)
  12. end
  13.  
  14. local myGraph = graph.new()
  15.  
  16. myGraph:setHighValue(70)
  17. myGraph:addData(10)
  18. myGraph:addData(20)
  19. myGraph:addData(30)
  20. myGraph:addData(5)
  21. myGraph:setBarWidth(3)
  22. myGraph:setBarColor(colorToggler)
  23.  
  24.  
  25. local data = {}
  26. local min = 0
  27. local max = 0
  28. local avg = 0
  29. local cur = 0
  30. m=peripheral.wrap("bottom")
  31. m2 = peripheral.wrap("right")
  32.  
  33. local w,h = m2.getSize()
  34. myGraph:setPos(4,1)
  35. myGraph:setSize(w-3,h)
  36. myGraph:setMonitor(m2)
  37.  
  38. m2.clear()
  39. m2.setTextColor(colors.white)
  40. m2.setBackgroundColor(colors.black)
  41. for i=h,1,-1 do
  42.     m2.setCursorPos(1,i)
  43.     local p = h-i+1
  44.     local perc = 80/h
  45.     local pp = math.floor(perc*p)
  46.     m2.write(string.format("%d",pp))
  47.  
  48. end
  49.  
  50. function updateScreen()
  51.   m.clear()
  52.   m.setCursorPos(1,1)
  53.   m.write("Falls: "..cur.." (Min: "..min.."/Max: "..max..")")
  54.   m.setCursorPos(1,2)
  55.   m.write("Status: not broken")
  56.   m.setCursorPos(1,3)
  57.   m.write("Tests: " ..#data.." Avg: " ..avg)
  58. end
  59. updateScreen()
  60.  
  61. function test()
  62.   rs.setOutput("back",true)
  63.   sleep(0.2)
  64.   rs.setOutput("back",false)
  65. end
  66.  
  67. function calcAvg()
  68.   avg = 0
  69.   for k,v in pairs(data) do
  70.     avg = avg + v
  71.   end
  72.   avg = avg / #data
  73. end
  74.  
  75.  
  76. myGraph:draw()
  77. test()
  78.  
  79. while true do
  80.   os.pullEvent("redstone")
  81.   if rs.getBundledInput("front") == 1 then
  82.     cur=cur+1
  83.     updateScreen()
  84.     test()
  85.   elseif rs.getBundledInput("front") == 2 then
  86.     m.setCursorPos(1,2)
  87.     m.write("Status: broken")
  88.     table.insert(data,cur)
  89.     calcAvg()
  90.     if cur > max then max = cur end
  91.     if cur < min or min == 0 then min = cur end
  92.     myGraph:addData(cur)
  93.     myGraph:draw()
  94.     updateScreen()    
  95.     cur = 0
  96.   elseif rs.getBundledInput("front") == 3 then
  97.     sleep(0.3)
  98.     test()
  99.   end
  100.  
  101. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement