Driftix

ComputerCraft extreme reactor display

Mar 14th, 2020
538
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.38 KB | None | 0 0
  1. reactor = peripheral.wrap("BigReactors-Reactor_0")
  2. monitor = peripheral.wrap("monitor_0")
  3.  
  4.  
  5. function createGraph(name,color,graphNumber,graphTotal,stored,storedMax)
  6.  
  7.   posX = math.floor(1 + (graphNumber-1)*(sizeX/graphTotal))
  8.  
  9.  
  10.   --affiche le titre
  11.   monitor.setCursorPos(posX,(sizeY * 0.5)-1)
  12.   titleLen = string.len(name)
  13.   local color1 = ""
  14.   local color2 = ""
  15.   for i = 1, titleLen do
  16.     color1 = color1 .."f"
  17.     color2 = color2 .."0"
  18.   end
  19.   monitor.blit(name,color1,color2)
  20.   color1 = ""
  21.   color2 = ""
  22.   --afficher le pourcentage
  23.   monitor.setCursorPos(posX,sizeY * 0.5)
  24.   Percentage = (stored / storedMax) * 100
  25.   monitor.write(string.format("%.2f",Percentage).." %")
  26.  
  27.   graphX = sizeX / graphTotal
  28.   graphY = ((sizeY * 0.5) /storedMax) * stored
  29.  
  30.   monitor.setCursorPos(posX,1)
  31.   for j = 0 , math.floor(graphY)  do
  32.     for i = 1, math.floor(graphX) / 2 do
  33.       monitor.setCursorPos((graphNumber-1)*(sizeX/graphTotal) + i,sizeY-j)
  34.       monitor.blit(" ",color,color)
  35.     end
  36.   end
  37. end
  38.  
  39. function createInfos()
  40.   monitor.setCursorPos(1,1)
  41.   monitor.write("Energy last tick: " ..string.format("%.2f",reactor.getEnergyProducedLastTick()).." RF/tick")
  42.   monitor.setCursorPos(1,2)
  43.   monitor.write("Fuel reactivity: "..string.format("%.2f",reactor.getFuelReactivity()).." %")
  44.   monitor.setCursorPos(1,3)
  45.   monitor.write("Fuel consumed last tick: "..string.format("%.2f",reactor.getFuelConsumedLastTick()).."")
  46.   monitor.setCursorPos(1,4)
  47.   monitor.write("Hot fluid produced last tick: "..string.format("%.2f",reactor.getHotFluidProducedLastTick()).." mB")
  48.   monitor.setCursorPos(1,5)
  49.   if reactor.getHotFluidType() == nil then
  50.     monitor.write("Fluide Type: none")
  51.   else
  52.     monitor.write("Fluide Type: "..string.format("%.2f",reactor.getHotFluidType()).."")
  53.   end
  54.  
  55.   --Affiche une ligne de séparation entre les graphs et les infos
  56.   monitor.setCursorPos(1,(sizeY * 0.5) -2)
  57.   for i = 0 , sizeX do
  58.     monitor.write("-")
  59.   end
  60. end
  61.  
  62. function main()
  63.   monitor.clear()
  64.   monitor.setCursorPos(1,1)
  65.   monitor.setCursorBlink(false)
  66.  
  67.   createGraph("Energy Level","d",1,3,reactor.getEnergyStored(),10000000)
  68.   createGraph("Fuel Level","e",2,3,reactor.getFuelAmount(),reactor.getFuelAmountMax())
  69.   createGraph("Temperature","2",3,3,reactor.getFuelTemperature(),2000)
  70.  
  71.   createInfos()
  72. end
  73.  
  74. while true do
  75.   sizeX, sizeY = monitor.getSize()
  76.   main()
  77.   sleep(1)
  78. end
Advertisement
Add Comment
Please, Sign In to add comment