Advertisement
Scarjit

Untitled

Oct 25th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. local reactor = peripheral.wrap("back")
  2. local monitor = peripheral.wrap("monitor_0")
  3.  
  4. if reactor == nil then
  5. error("No reactor found")
  6. end
  7. if monitor == nil then
  8. error("No monitor found")
  9. end
  10.  
  11. local energyStored = 0
  12. local energyProduced = 0
  13. local energyCapacity = 0
  14. local fillPercentage = 0
  15.  
  16. -- Initialize Battery Window
  17. local batteryWindowBG = window.create(monitor, 2, 2, 5, 10, true)
  18. local batteryWindowFG = window.create(monitor, 2, 2, 5, 5, true)
  19.  
  20. batteryWindowBG.setBackgroundColor(colours.red)
  21. batteryWindowBG.clear()
  22. batteryWindowBG.redraw()
  23.  
  24. batteryWindowFG.setBackgroundColor(colours.green)
  25. batteryWindowFG.clear()
  26. batteryWindowFG.redraw()
  27.  
  28. -- Initialize Controll Rod Window
  29. local cRodWindowBG = window.create(monitor, 10, 2, 5, 10, true)
  30. local cRodWindowFG = window.create(monitor, 10, 2, 5, 5, true)
  31.  
  32. cRodWindowBG.setBackgroundColor(colours.grey)
  33. cRodWindowBG.clear()
  34. cRodWindowBG.redraw()
  35.  
  36. cRodWindowFG.setBackgroundColor(colours.yellow)
  37. cRodWindowFG.clear()
  38. cRodWindowFG.redraw()
  39.  
  40.  
  41. local function round(num, numDecimalPlaces)
  42. local mult = 10^(numDecimalPlaces or 2)
  43. return math.floor(num * mult + 0.5) / mult
  44. end
  45.  
  46. local function getAvgControlRodLevel()
  47. local levelTotal = 0
  48. for i=1, reactor.getNumberOfControlRods() do
  49. levelTotal = levelTotal + reactor.getControlRodLevel(i)
  50. end
  51. return levelTotal / reactor.getNumberOfControlRods()
  52. end
  53.  
  54. local function UpdateReactorStats()
  55. local stats = reactor.getEnergyStats()
  56. energyStored = stats["energyStored"]
  57. energyProduced = stats["energyProducedLastTick"]
  58. energyCapacity = stats["energyCapacity"]
  59. if energyStored == 0 then
  60. fillPercentage = 0
  61. else
  62. fillPercentage = energyStored / energyCapacity * 100
  63. end
  64. end
  65.  
  66. local function ClearScreen()
  67. term.setBackgroundColor(colours.black)
  68. term.clear()
  69. term.setCursorPos(1,1)
  70. end
  71.  
  72. local function ClearMonitor()
  73. monitor.setBackgroundColor(colours.black)
  74. monitor.clear()
  75. monitor.setCursorPos(1,1)
  76. end
  77.  
  78. local function UpdateMonitorStats()
  79. batteryWindowFG.reposition(2, 2, 5, round(fillPercentage/10))
  80.  
  81. batteryWindowBG.redraw()
  82. batteryWindowFG.redraw()
  83.  
  84.  
  85. batteryWindowFG.reposition(10, 2, 5, round(getAvgControlRodLevel/10))
  86. cRodWindowBG.redraw()
  87. cRodWindowFG.redraw()
  88. end
  89.  
  90. ClearScreen()
  91. ClearMonitor()
  92. UpdateReactorStats()
  93.  
  94. while true do
  95. os.sleep(0.2)
  96. UpdateReactorStats()
  97. ClearScreen()
  98. ClearMonitor()
  99. UpdateMonitorStats()
  100. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement