Driftix

Bigger Reactor update

Jul 20th, 2025 (edited)
11
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. reactor = peripheral.wrap("BiggerReactors_Reactor_0")
  2. monitor = peripheral.find("monitor")
  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.  
  42. local battery = reactor.battery()
  43. if battery then
  44. monitor.write("Energy last tick: " .. string.format("%.2f", battery.producedLastTick()) .. " RF/tick")
  45. else
  46. monitor.write("Energy last tick: N/A")
  47. end
  48.  
  49. monitor.setCursorPos(1,2)
  50. monitor.write("Fuel reactivity: "..string.format("%.2f",reactor.fuelTank().fuelReactivity()).." %")
  51. monitor.setCursorPos(1,3)
  52. monitor.write("Fuel consumed last tick: "..string.format("%.2f",reactor.fuelTank().burnedLastTick()).."")
  53. monitor.setCursorPos(1,4)
  54.  
  55. local coolant = reactor.coolantTank()
  56. if coolant then
  57. monitor.write("Hot fluid produced last tick: " .. string.format("%.2f", coolant.transitionedLastTick()) .. " mB")
  58. else
  59. monitor.write("Hot fluid produced last tick: N/A")
  60. end
  61.  
  62. monitor.setCursorPos(1,5)
  63. --if reactor.getHotFluidType() == nil then
  64. -- monitor.write("Fluide Type: none")
  65. --else
  66. -- monitor.write("Fluide Type: "..string.format("%.2f",reactor.getHotFluidType()).."")
  67. --end
  68.  
  69. --Affiche une ligne de séparation entre les graphs et les infos
  70. monitor.setCursorPos(1,(sizeY * 0.5) -2)
  71. for i = 0 , sizeX do
  72. monitor.write("-")
  73. end
  74. end
  75.  
  76. function main()
  77. monitor.clear()
  78. monitor.setCursorPos(1,1)
  79. monitor.setCursorBlink(false)
  80.  
  81. createGraph("Energy Level","d",1,3,reactor.battery().stored(),reactor.battery().capacity())
  82. createGraph("Fuel Level","e",2,3,reactor.fuelTank().fuel(),reactor.fuelTank().capacity())
  83. createGraph("Temperature","2",3,3,reactor.casingTemperature(),2000)
  84.  
  85. createInfos()
  86. end
  87.  
  88. while true do
  89. sizeX, sizeY = monitor.getSize()
  90. main()
  91. sleep(1)
  92. end
Advertisement
Add Comment
Please, Sign In to add comment