Advertisement
Kodos

OC Big Reactor Control Program (WIP)

Dec 5th, 2014
267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.21 KB | None | 0 0
  1. local component = require("component")
  2. local colors = require("colors")
  3. local term = require("term")
  4.  
  5. local reactor = component.br_reactor
  6. local gpu = component.gpu
  7.  
  8. function round(num, idp)
  9. local mult = 10^(idp or 0)
  10. return math.floor(num * mult + 0.5) / mult
  11. end
  12.  
  13. while true do
  14.  
  15. -- Reactor Status:
  16. status = reactor.getActive()
  17.   if status == true then
  18.     term.setCursor(1,1)
  19.     gpu.setForeground(0x00FF00)
  20.     gpu.setBackground(0x000000)
  21.     term.write("Reactor Active")
  22.   end
  23.  
  24.   elseif status == false then
  25.     term.setCursor(1,1)
  26.     gpu.setForeground(0xFF0000)
  27.     gpu.setBackground(0x000000)
  28.     term.write("Reactor Inactive")
  29.   end
  30.  
  31. --Resetting Colors
  32. gpu.setForeground(0xFFFFFF)
  33. gpu.setBackground(0x000000)
  34.  
  35. --Check Core Temperature:
  36. ftemp = reactor.getFuelTemperature()
  37. if ftemp > 1 then
  38. term.setCursor(1,3)
  39. term.write("Core Temp: "..round(ftemp, 0))
  40. end
  41.  
  42. --Check Casing Temperature:
  43. ctemp = reactor.getCasingTemperature()
  44. if ctemp > 1 then
  45. term.setCursor(1,4)
  46. term.write("Casing Temp: " .. round(ctemp, 0))
  47. end
  48.  
  49. --Check Fuel and Waste Amounts:
  50. famount = reactor.getFuelAmount()
  51. wamount = reactor.getWasteAmount()
  52. if famount > -1 then
  53. term.setCursor(1,5)
  54. term.write("Fuel Amount: "..round(famount, 0))
  55. end
  56. if wamount > -1 then
  57. term.setCursor(1,6)
  58. term.write("Waste Amount: "..round(wamount, 0))
  59. end
  60.  
  61. --Check Fuel Consumption:
  62. fconsump = reactor.getFuelConsumedLastTick()
  63. if fconsump > -1 then
  64. term.setCursor(1,9)
  65. term.write("Fuel Consumption (mB/t): "..round(fconsump, 0))
  66. end
  67.  
  68. --Energy Production:
  69. energy = reactor.getEnergyProducedLastTick()
  70. if energy > -1 then
  71. term.setCursor(1,10)
  72. term.write("Energy Production (RF/t): "..round(energy, 0))
  73. end
  74.  
  75. --Control Rod Positions:
  76. crp = reactor.getControlRodLevel(1)
  77. if crp > -1 then
  78. term.setCursor(1,7)
  79. term.write("Control Rod Level(%): "..round(crp, 0))
  80. end
  81.  
  82. --Fuel Reactivity:
  83. fuelr = reactor.getFuelReactivity()
  84. if fuelr > -1 then
  85. term.setCursor(1,8)
  86. term.write("Fuel Reactivity (%): "..round(fuelr, 0))
  87. end
  88.  
  89. --Reactor On/Off:
  90. if reactor.getEnergyStored() < 2500000 then
  91. reactor.setActive(true)
  92. end
  93. if reactor.getEnergyStored() > 9000000 then
  94. reactor.setActive(false)
  95. end
  96.  
  97. os.sleep(.5)
  98. term.clear()
  99. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement