Advertisement
mrkarp

Untitled

Mar 31st, 2015
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.24 KB | None | 0 0
  1. print('ReactorControl Engaged. View Monitor.')
  2.  
  3.  
  4. -- Vars
  5. emptyflag = 0
  6. offlineflag = 0
  7. flashflag = 0
  8.  
  9. reactorName = "BigReactors-Reactor_4"
  10. monitorWrap = "right"
  11.  
  12. -- Peripherals
  13. reactor = peripheral.wrap(reactorName )
  14. monitor = peripheral.wrap(monitorWrap )
  15.  
  16. -- Monitor Settings
  17. monitor.setTextScale(1)
  18. monitor.setBackgroundColor(colors.black)
  19.  
  20. if fs.exists("ProgressBar") then
  21.     write("You have the API")
  22.  else
  23.     write("Downloading API")
  24.     shell.run("pastebin get Rzxj0KKM ProgressBar")
  25. end
  26.  
  27. --Load ProgressBar API
  28. os.loadAPI('ProgressBar')
  29. ProgressBar.SetPeripheral(monitorWrap )
  30.  
  31.  
  32. -- Main Function
  33. while true do
  34.     monitor.clear()
  35.     monitor.setCursorPos(1,1)
  36.     monitor.setTextColor(colors.white)
  37.     monitor.write('Fuel Level:')
  38.     monitor.setCursorPos(1,2)
  39.     monitor.setTextColor(colors.yellow)
  40.  
  41.     -- Fuel Bar
  42.     fuelMax = reactor.getFuelAmountMax()
  43.     fuelAmount = reactor.getFuelAmount()
  44.     fuelAmountText = math.floor(((reactor.getFuelAmount()/reactor.getFuelAmountMax())*100)+0.5)
  45.     ProgressBar.SetTable("Fuel", fuelMax, fuelAmount, 2,17,2)
  46.         --ProgressBar.DrawToPeripheral()
  47.     monitor.setCursorPos(20, 2)
  48.     monitor.setTextColor(colors.yellow)
  49.     monitor.write(fuelAmountText..' % Fuel')
  50.     --------------------------------------------------
  51.  
  52.     monitor.setCursorPos(1,3)
  53.  
  54.     -- Waste Bar
  55.     monitor.setTextColor(colors.lightBlue)
  56.     wasteMax = reactor.getFuelAmountMax()
  57.     wasteAmount = reactor.getWasteAmount()
  58.     wasteAmountText = math.floor(((reactor.getWasteAmount()/reactor.getFuelAmountMax())*100)+0.5)
  59.     ProgressBar.SetTable("Waste", wasteMax, wasteAmount, 2,17,3)
  60.         --ProgressBar.DrawToPeripheral()
  61.     monitor.setCursorPos(20, 3)
  62.     monitor.setTextColor(colors.cyan)
  63.     monitor.write(wasteAmountText..' % Waste')
  64.     --------------------------------------------------
  65.    
  66.     monitor.setCursorPos(1,5)
  67.  
  68.     -- Control Rod %
  69.     monitor.setTextColor(colors.white)
  70.     monitor.write('Control Rod Levels:')
  71.     --------------------------------------------------
  72.     monitor.setTextColor(colors.green)
  73.     monitor.setCursorPos(1,6)
  74.     monitor.write('R1: ')
  75.     monitor.setCursorPos(20,6)
  76.     monitor.write(' '..(100-(reactor.getControlRodLevel(0)))..'% Depth')
  77.     r1 = (100-(reactor.getControlRodLevel(0)))
  78.     ProgressBar.SetTable("R1", 100, r1, 4,15,6)
  79.         --ProgressBar.DrawToPeripheral()
  80.     --------------------------------------------------
  81.  
  82.     monitor.setCursorPos(1,11)
  83.  
  84.     -- Temps and Heat
  85.     monitor.setTextColor(colors.white)
  86.     monitor.write('Temperature:')
  87.     monitor.setCursorPos(1,12)
  88.     monitor.setTextColor(colors.lightGray)
  89.     monitor.write('Casing: ')
  90.     if reactor.getCasingTemperature()>=650 then
  91.         monitor.setTextColor(colors.purple)
  92.         else if reactor.getCasingTemperature()>=950 then
  93.             monitor.setTextColor(colors.red)
  94.         else
  95.         monitor.setTextColor(colors.green)
  96.         end
  97.     end
  98.     casingTemp = math.floor(reactor.getCasingTemperature()*100)+0.5
  99.     ProgressBar.SetTable("CasingTemp", 10000, casingTemp, 9,20,12)
  100.         --ProgressBar.DrawToPeripheral()
  101.     monitor.setCursorPos(26,12)
  102.     monitor.write(casingTemp..' C')
  103.     --------------------------------------------------
  104.     monitor.setCursorPos(1,13)
  105.     monitor.setTextColor(colors.yellow)
  106.     monitor.write('Fuel: ')
  107.     if reactor.getFuelTemperature()>=650 then
  108.       monitor.setTextColor(colors.purple)
  109.       else if reactor.getFuelTemperature()>=950 then
  110.         monitor.setTextColor(colors.red)
  111.       else
  112.      monitor.setTextColor(colors.green)
  113.       end
  114.     end
  115.     --monitor.write(reactor.getFuelTemperature()..'C')
  116.     fuelTemp = reactor.getFuelTemperature()
  117.     ProgressBar.SetTable("FuelTemp", 10000, fuelTemp, 9,20,13)
  118.         --ProgressBar.DrawToPeripheral()
  119.     monitor.setCursorPos(26,12)
  120.     monitor.write(fuelTemp..' C')
  121.     --------------------------------------------------
  122.  
  123.     monitor.setCursorPos(1,15)
  124.  
  125.     -- Flux Information
  126.     monitor.setTextColor(colors.white)
  127.     -- Title
  128.     monitor.write('Flux:')
  129.     monitor.setCursorPos(1,16)
  130.     monitor.setTextColor(colors.green)
  131.     -- RF Stored
  132.     rfStored = reactor.getEnergyStored()
  133.     rfStoredFormat = rfStored / 1000
  134.     if reactor.getEnergyProducedLastTick()>=500 and reactor.getEnergyProducedLastTick()<2000 then
  135.         monitor.setTextColor(colors.orange)
  136.     end
  137.  
  138.     if reactor.getEnergyProducedLastTick()>=2000 then
  139.         monitor.setTextColor(colors.red)
  140.     end
  141.     ProgressBar.SetTable("RFStored", 10000000, rfStored, 2,20,16)
  142.         --ProgressBar.DrawToPeripheral()
  143.     monitor.setCursorPos(15,16)
  144.     monitor.write(rfStoredFormat..'K Stored')
  145.     --------------------------------------------------
  146.     -- RF Per Tick
  147.     monitor.setCursorPos(1,17)
  148.     monitor.setTextColor(colors.orange)
  149.     rfPerTick = reactor.getEnergyProducedLastTick()
  150.     ProgressBar.SetTable("RFPerTick", 10000000, rfPerTick, 2,20,17)
  151.     monitor.setCursorPos(22,17)
  152.     monitor.write((math.floor(reactor.getEnergyProducedLastTick()+0.5))..' RF/t')
  153.     --------------------------------------------------
  154.     ProgressBar.DrawToPeripheral()
  155.     monitor.setCursorPos(1,18)
  156.  
  157.     if flashflag==0 then
  158.       flashflag=1
  159.       if offlineflag==1 then
  160.         monitor.setCursorPos(1,19)
  161.         monitor.setTextColor(colors.lightGray)
  162.         monitor.write('OFFLINE - Manual Override')
  163.       end
  164.       if emptyflag==1 then
  165.         monitor.setCursorPos(1,19)
  166.         monitor.setTextColor(colors.pink)
  167.         monitor.write('OFFLINE - Fuel Exhausted')
  168.       end
  169.       if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)>75 then
  170.         monitor.setCursorPos(1,19)
  171.         monitor.setTextColor(colors.yellow)
  172.         monitor.write('ONLINE - Low Power Mode')
  173.       end
  174.       if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)<=75 then
  175.         monitor.setCursorPos(1,19)
  176.         monitor.setTextColor(colors.orange)
  177.         monitor.write('ONLINE - High Power Mode')
  178.       end
  179.     else
  180.       flashflag=0
  181.       monitor.setCursorPos(1,19)
  182.       monitor.clearLine()
  183.     end
  184.  
  185.     if reactor.getEnergyStored()<=10000000 and reactor.getEnergyStored()>100 then
  186.         reactor.setAllControlRodLevels(0+(math.floor(reactor.getEnergyStored()/100000)))
  187.     else
  188.         reactor.setAllControlRodLevels(0)
  189.     end
  190.      
  191.     if reactor.getFuelAmount()<=100 and offlineflag==0 then
  192.         reactor.setAllControlRodLevels(100)
  193.         reactor.setActive(false)
  194.         emptyflag=1
  195.     else
  196.         emptyflag=0
  197.     end
  198.          
  199.     if rs.getInput('bottom')==false and emptyflag==0 then
  200.         reactor.setActive(true)
  201.         offlineflag=0
  202.     end
  203.      
  204.     if rs.getInput('bottom')==true and emptyflag==0 then
  205.         reactor.setActive(false)
  206.         reactor.setAllControlRodLevels(100)
  207.         offlineflag=1
  208.     end    
  209. sleep(1)
  210. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement