Advertisement
Kodos

[OC] BR Reactor Status Printer

Oct 27th, 2015
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.63 KB | None | 0 0
  1. local component = require("component")
  2. local term = require("term")
  3. local unicode = require("unicode")
  4. local timeapi = require("timeapi")
  5.  
  6. local pr = component.openprinter
  7. local br = component.br_reactor
  8.  
  9. local function round(num, idp)
  10.   local mult = 10^(idp or 0)
  11.   return math.floor(num * mult + 0.5) / mult
  12. end
  13.  
  14. local function easynum(num, places)
  15.     local ret
  16.     local placeValue = ("%%.%df"):format(places or 0)
  17.     if not num then
  18.         return 0
  19.     elseif num >= 1000000000000 then
  20.         ret = placeValue:format(num / 1000000000000) .. " Tril" -- trillion
  21.     elseif num >= 1000000000 then
  22.         ret = placeValue:format(num / 1000000000) .. " Bil" -- billion
  23.     elseif num >= 1000000 then
  24.         ret = placeValue:format(num / 1000000) .. " Mil" -- million
  25.     elseif num >= 1000 then
  26.         ret = placeValue:format(num / 1000) .. "k" -- thousand
  27.     else
  28.         ret = num -- hundreds
  29.     end
  30.     return ret
  31. end
  32.  
  33. pr.setTitle("Reactor Status")
  34.  
  35. if not br.isActivelyCooled() then
  36. pr.writeln("Fuel: " .. tostring(easynum(br.getFuelAmount())) .. " of " .. tostring(easynum(br.getFuelAmountMax())) .. " mB")
  37. pr.writeln(" ")
  38. pr.writeln("Average Fuel Consumed:")
  39. pr.writeln(tostring(round(br.getFuelConsumedLastTick(),3)) .. " mB/t")
  40. pr.writeln(" ")
  41. pr.writeln("Average RF Generated:")
  42. pr.writeln(tostring(math.floor(br.getEnergyProducedLastTick())) .. " RF/t")
  43. pr.writeln(" ")
  44. pr.writeln("Average Fuel Reactivity:")
  45. pr.writeln(tostring(math.floor(br.getFuelReactivity())) .. "%")
  46. pr.writeln(" ")
  47. pr.writeln("Average Fuel Temperature:")
  48. pr.writeln(tostring(math.floor(br.getFuelTemperature())) .. "° C")
  49. pr.writeln(" ")
  50. pr.writeln("Current Energy Stored:")
  51. pr.writeln(tostring(easynum(br.getEnergyStored())) .. " RF")
  52. pr.writeln(" ")
  53. pr.writeln(" ")
  54. pr.writeln(" ")
  55. -- pr.writeln(timeapi.date("%25m-%25d-%25Y%20%25R") .. " UTC")
  56.  
  57. elseif br.isActivelyCooled() then
  58. pr.writeln("Fuel:")
  59. pr.writeln(tostring(math.floor(br.getFuelAmount())) .. " of")
  60. pr.writeln(tostring(br.getFuelAmountMax()))
  61. pr.writeln(" ")
  62. pr.writeln("Average Fuel Consumed")
  63. pr.writeln("Per Tick:")
  64. pr.writeln(tostring(round(br.getFuelConsumedLastTick(),3)) .. " mb/t")
  65. pr.writeln(" ")
  66. pr.writeln("Average Steam Generated")
  67. pr.writeln("Per Tick:")
  68. pr.writeln(tostring(br.getHotFluidProducedLastTick()))
  69. pr.writeln(" ")
  70. pr.writeln("Total Steam Capacity:")
  71. pr.writeln(tostring(br.getHotFluidAmountMax()))
  72. pr.writeln(" ")
  73. pr.writeln("Average Fuel Temperature:")
  74. pr.writeln(tostring(br.getFuelTemperature()))
  75. pr.writeln("")
  76. end
  77.  
  78.  
  79. local prnt, err = pr.print()
  80. if not prnt then
  81. io.stderr:write(err)
  82. end
  83.  
  84.  
  85. pr.clear()
  86. pr.setTitle(" ")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement