Advertisement
Guest User

Untitled

a guest
Sep 1st, 2014
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.62 KB | None | 0 0
  1. local component = require("component")
  2. local event = require("event")
  3. local fs = require("filesystem")
  4. local keyboard = require("keyboard")
  5. local shell = require("shell")
  6. local term = require("term")
  7. local text = require("text")
  8. local unicode = require("unicode")
  9. local sides = require("sides")
  10. local colors=require("colors")
  11. local gpu=component.gpu
  12. local br = component.br_reactor
  13. local rs = component.redstone
  14. local maxTemp = 5500
  15. local tickCnt = 0
  16. local minCount = 0
  17. local tickEnergy = 0
  18. local minEnergy = 0
  19. local slp = 1
  20. local rodLevel = br.getControlRodLevel(0)
  21. local running = true
  22. local hours = 0
  23. local mins = 0
  24. term.clear()
  25. term.setCursorBlink(false)
  26. -------------------------------------------------------------------------------
  27. function getKey()
  28. return (select(4, event.pull("key_down")))
  29. end
  30. local function printXY(row, col, s, ...)
  31. term.setCursor(col, row)
  32. print(s:format(...))
  33. end
  34. local function gotoXY(row, col)
  35. term.setCursor(col,row)
  36. end
  37. local function center(row, msg)
  38. local mLen = string.len(msg)
  39. w, h = gpu.getResolution()
  40. term.setCursor((w - mLen)/2,row)
  41. print(msg)
  42. end
  43. local function centerF(row, msg, ...)
  44. local mLen = string.len(msg)
  45. w, h = gpu.getResolution()
  46. term.setCursor((w - mLen)/2,row)
  47. print(msg:format(...))
  48. end
  49. local function warning(row, msg)
  50. local mLen = string.len(msg)
  51. w, h = gpu.getResolution()
  52. term.setCursor((w - mLen)/2,row)
  53. print(msg)
  54. end
  55. local controlKeyCombos = {[keyboard.keys.s]=true,[keyboard.keys.w]=true,
  56. [keyboard.keys.c]=true,[keyboard.keys.x]=true}
  57. local function onKeyDown(opt)
  58. if opt == keyboard.keys.left then
  59. br.setActive(false)
  60. elseif opt == keyboard.keys.right then
  61. br.setActive(true)
  62. elseif opt == keyboard.keys.up then
  63. if (rodLevel > 0) then
  64. rodLevel = rodLevel - 10
  65. br.setAllControlRodLevels(rodLevel)
  66. end
  67. elseif opt == keyboard.keys.down then
  68. if (rodLevel < 100) then
  69. rodLevel = rodLevel + 10
  70. br.setAllControlRodLevels(rodLevel)
  71. end
  72. elseif opt == keyboard.keys.pageDown then
  73. br.doEjectWaste()
  74. elseif opt == keyboard.keys.q then
  75. running = false
  76. end
  77. end
  78. -------------------------------------------------------------------------------
  79. while running do
  80. tickCnt = tickCnt + 1
  81. if tickCnt == 20 then
  82. mins = mins + 1
  83. tickCnt = 0
  84. end
  85. if math.fmod(tickCnt,20) == 0 then
  86. br.doEjectWaste()
  87. end
  88. if mins == 60 then
  89. hours = hours + 1
  90. mins = 0
  91. end
  92. local reactorTemp = br.getCasingTemperature()
  93. term.setCursor(1,1)
  94. print(" Item Name: Level: Temperature: Fuel: Max Fuel Waste:")
  95. printXY(4, 1, " 1: %s %03d %04d %06d %06d %04d",br.getControlRodName(0), br.getControlRodLevel(0), br.getFuelTemperature(0), br.getFuelAmount(0), br.getFuelAmountMax(0), br.getWasteAmount(0))
  96. printXY(6, 1, " 2: %s %03d %04d %06d %06d %04d",br.getControlRodName(5), br.getControlRodLevel(5), br.getFuelTemperature(5), br.getFuelAmount(5), br.getFuelAmountMax(5), br.getWasteAmount(5))
  97. printXY(8, 1, " 3: %s %03d %04d %06d %06d %04d",br.getControlRodName(3), br.getControlRodLevel(3), br.getFuelTemperature(3), br.getFuelAmount(3), br.getFuelAmountMax(3), br.getWasteAmount(3))
  98. printXY(10, 1, " 4: %s %03d %04d %06d %06d %04d",br.getControlRodName(6), br.getControlRodLevel(6), br.getFuelTemperature(6), br.getFuelAmount(6), br.getFuelAmountMax(6), br.getWasteAmount(6))
  99. printXY(12, 1, " 5: %s %03d %04d %06d %06d %04d",br.getControlRodName(4), br.getControlRodLevel(4), br.getFuelTemperature(4), br.getFuelAmount(4), br.getFuelAmountMax(4), br.getWasteAmount(4))
  100. printXY(14, 1, " 6: %s %03d %04d %06d %06d %04d",br.getControlRodName(2), br.getControlRodLevel(2), br.getFuelTemperature(2), br.getFuelAmount(2), br.getFuelAmountMax(2), br.getWasteAmount(2))
  101. printXY(16, 1, " 7: %s %03d %04d %06d %06d %04d",br.getControlRodName(7), br.getControlRodLevel(7), br.getFuelTemperature(7), br.getFuelAmount(7), br.getFuelAmountMax(7), br.getWasteAmount(7))
  102. printXY(18, 1, " 8: %s %03d %04d %06d %06d %04d",br.getControlRodName(1), br.getControlRodLevel(1), br.getFuelTemperature(1), br.getFuelAmount(1), br.getFuelAmountMax(1), br.getWasteAmount(1))
  103. printXY(20, 1, " 9: %s %03d %04d %06d %06d %04d",br.getControlRodName(8), br.getControlRodLevel(8), br.getFuelTemperature(8), br.getFuelAmount(8), br.getFuelAmountMax(8), br.getWasteAmount(8))
  104. printXY(22, 1, " 10: Reactor %03d %04d %06d %06d %04d", br.getControlRodLevel(0), br.getCasingTemperature(), br.getFuelAmount(), br.getFuelAmountMax(), br.getWasteAmount())
  105. printXY(25, 1, " 11: Energy Stored %06.2f", br.getEnergyStored())
  106. printXY(26, 1, " 12: Energy Last Tick %06.2f", br.getEnergyProducedLastTick())
  107. centerF(40, "Data updates every second Tick Count: %2d", tickCnt)
  108. centerF(41, "Current up time: %2d hours %2d min", hours, mins)
  109. center(42, "Left - Turn Reactor Off Right - Turn Reactor On")
  110. center(43, "Up - Pull Rods 10% Down - Lower Rods 10% ")
  111. center(44, "Page Down - Eject Waste Q - Quit ")
  112. --center(39, " ")
  113. if (reactorTemp > maxTemp) then
  114. term.setCursor(25,30)
  115. gpu.setForeground(0xFF0000)
  116. gpu.setBackground(0xFFFFFF)
  117. warning(30, " ")
  118. warning(31, " WARNING WARNING WARNING ")
  119. warning(32, " ")
  120. warning(33, " Reactor Temperature Too High ")
  121. warning(34, " ")
  122. gpu.setForeground(0xFFFFFF)
  123. gpu.setBackground(0x000000)
  124. term.setCursor(1,41)
  125. else
  126. gpu.setForeground(0xFFFFFF)
  127. gpu.setBackground(0x000000)
  128. gotoXY(30,1)
  129. print()
  130. gotoXY(31,1)
  131. print()
  132. gotoXY(32,1)
  133. print()
  134. gotoXY(33,1)
  135. print()
  136. gotoXY(34,1)
  137. print()
  138. gpu.setForeground(0xFFFFFF)
  139. gpu.setBackground(0x000000)
  140. term.setCursor(1,47)
  141. end
  142. term.clearLine()
  143. print()
  144. local event, address, arg1, arg2, arg3 = event.pull(1)
  145. if type(address) == "string" and component.isPrimary(address) then
  146. if event == "key_down" then
  147. onKeyDown(arg2)
  148. end
  149. end
  150. end
  151. term.clear()
  152. term.setCursorBlink(false)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement