Advertisement
SupremoHaLO

Control Reactor Nuclear (Big Reactor)

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