Advertisement
Guest User

Big Reactor Control

a guest
Dec 29th, 2015
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. local cap = peripheral.wrap("tile_blockcapacitorbank_name_0")
  2. local mon = peripheral.wrap("monitor_1")
  3. local rea = peripheral.wrap("BigReactors-Reactor_1")
  4.  
  5. local numCapacitors = 5
  6. local enciendeA = 50
  7. local apagaA = 90
  8.  
  9. local energia = 0
  10. local enegriaGuardada = 0
  11. local energiaMax = 0
  12. local energiaGuardadaPorCiento = 0
  13. local produccionRF = 0
  14. local usoFuel = 0
  15. local tempCore = 0
  16. local reactorOnline = false
  17.  
  18. function enciende()
  19. rea.setActive(true)
  20. end
  21.  
  22. function apaga()
  23. rea.setActive(false)
  24. end
  25.  
  26. function comma_value(cantidad)
  27. local formateo = cantidad
  28. local swap = false
  29. if formateo < 0 then
  30. formateo = formateo*-1
  31. swap = true
  32. end
  33. while true do
  34. formatted, k = string.gsub(formateo, "^(%d+)(%d%d%d)", '%1,%2')
  35. if k == 0 then
  36. break
  37. end
  38. end
  39. if swap then
  40. formateo = "-"..formateo
  41. end
  42. return formateo
  43. end
  44.  
  45. function muestraEnergia()
  46. mon.clear()
  47. mon.setCursorPos(1,1)
  48. mon.write("Uso de Energia: ")
  49. if energia < 0 then
  50. mon.setTextColor(colors.red)
  51. else
  52. mon.setTextColor(colors.lime)
  53. end
  54. mon.write(comma_value(math.floor(energia)).."RF/T")
  55. mon.setTextColor(colors.white)
  56. mon.setCursorPos(1,2)
  57. mon.writhe("Energia Almacenada: ")
  58. if energiaGuardadaPorCiento < 55 then
  59. mon.setTextColor(colors.red)
  60. elseif energiaGuardadaPorCiento >= 55 and energiaGuardadaPorciento <=85 then
  61. mon.setTextColor(colors.yellow)
  62. else
  63. mon.setTextColor(colors.lime)
  64. end
  65. mon.write(energiaGuardadaPorCiento.."/.")
  66. mon.setTextColor(colors.white)
  67. mon.setCursorPos(1,3)
  68. mon.write("El Reactor esta: ")
  69. if reactorOnline then
  70. mon.setTextColor(colors.lime)
  71. mon.write("ENCENDIDO")
  72. else
  73. mon.setTextColor(colors.red)
  74. mon.write("APAGADO")
  75. end
  76. mon.setTextColor(colors.white)
  77. mon.setCursorPos(1,4)
  78. mon.write("Generacion de RFs: ")
  79. mon.setTextColor(colors.lime)
  80. mon.write(comma_value(math.floor(produccionRF)).."RF/T")
  81. mon.setTextColor(colors.white)
  82. mon.setCursorPos(1,5)
  83. mon.write("Temperatura Interna: "..math.floor(tempCore).."F/T")
  84. mon.setCursorPos(1,6)
  85. mon.write("Uso de Combustible: "..usoFuel.."MB/T")
  86.  
  87. end
  88.  
  89. function compruebaEnergia()
  90. local energiaTemporal = 0
  91. energiaGuardada = cap.getEnergyStored()
  92. energiMax = cap.getMaxEnergyStored()
  93. produccionRF = rea.getEnergyProducedLastTick()
  94. energiaGuardadaPorCiento = match.floor((energiaGuardada/energiaMax)*100)
  95. usoFuel = rea.getFuelConsumedLastTick()
  96. usoFuel = match.floor(usoFuel*100)
  97. usoFuel = usoFuel/100
  98. tempCore = rea.getFuelTemperature()
  99. reactorOnline = rea.getActive()
  100. energiaTemporal = cap.getEnergyStored()
  101. sleep(0.1)
  102. energia = (cap.getEnergStored()-energiaTemporal)/2
  103. energia = energia*numCapacitors
  104. end
  105.  
  106. function autoReactor()
  107. rea.setAllControlRodLevels(0)
  108. if energiaGuardadaPorCiento < enciendeA then
  109. if not reactorOnline then
  110. enciende()
  111. end
  112. end
  113. if energiaGuardadaPorCiento > apagaA then
  114. if reactorOnline then
  115. apaga()
  116. end
  117. end
  118. end
  119.  
  120. function muestraInfo()
  121. -- Esta es la que se repite
  122. compruebaEnergia()
  123. muestraEnergia()
  124. autoReactor()
  125. end
  126.  
  127. while true do
  128. muestraInfo()
  129. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement