Advertisement
Guest User

startup

a guest
Aug 30th, 2014
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.83 KB | None | 0 0
  1.     print('ReactorControl Engaged. View Monitor.')
  2.      
  3.     emptyflag=0
  4.     offlineflag=0
  5.     flashflag=0
  6.      
  7.     reactorA=peripheral.wrap('BigReactors-Reactor_1')
  8.     monitor=peripheral.wrap('right')
  9.      
  10.     monitor.setTextScale(1)
  11.     monitor.setBackgroundColor(colors.black)
  12.      
  13.     while true do
  14.     monitor.clear()
  15.     monitor.setCursorPos(1,1)
  16.     monitor.setTextColor(colors.white)
  17.     monitor.write('Fuel Level:')
  18.     monitor.setCursorPos(1,2)
  19.     monitor.setTextColor(colors.yellow)
  20.     monitor.write(math.floor(((reactorA.getFuelAmount()/reactorA.getFuelAmountMax())*100)+0.5)..'% Fuel')
  21.     monitor.setCursorPos(1,3)
  22.     monitor.setTextColor(colors.lightBlue)
  23.     monitor.write(math.floor(((reactorA.getWasteAmount()/reactorA.getFuelAmountMax())*100)+0.5)..'% Waste')
  24.     monitor.setCursorPos(1,5)
  25.     monitor.setTextColor(colors.white)
  26.     monitor.write('Control Rod Levels:')
  27.     monitor.setTextColor(colors.green)
  28.     monitor.setCursorPos(1,6)
  29.     monitor.write('Rod 1a:  '..(100-(reactorA.getControlRodLevel(0)))..'% Depth')
  30.     monitor.setCursorPos(1,7)
  31.     monitor.write('Rod 2a:  '..(100-(reactorA.getControlRodLevel(1)))..'% Depth')
  32.     monitor.setCursorPos(1,8)
  33.     monitor.write('Rod 3a:  '..(100-(reactorA.getControlRodLevel(2)))..'% Depth')
  34.     monitor.setCursorPos(1,9)
  35.     monitor.write('Rod 4a:  '..(100-(reactorA.getControlRodLevel(3)))..'% Depth')
  36.     monitor.setCursorPos(1,10)
  37.     monitor.write('Rod 5a:  '..(100-(reactorA.getControlRodLevel(4)))..'% Depth')
  38.     monitor.setCursorPos(22,6)
  39.     monitor.write('Rod 6a: '..(100-(reactorA.getControlRodLevel(5)))..'% Depth')
  40.     monitor.setCursorPos(22,7)
  41.     monitor.write('Rod 7a: '..(100-(reactorA.getControlRodLevel(6)))..'% Depth')
  42.     monitor.setCursorPos(22,8)
  43.     monitor.write('Rod 8a: '..(100-(reactorA.getControlRodLevel(7)))..'% Depth')
  44.     monitor.setCursorPos(1,12)
  45.     monitor.setTextColor(colors.white)
  46.     monitor.write('Temperature:')
  47.     monitor.setCursorPos(1,13)
  48.     if reactorA.getCasingTemperature()>=650 then
  49.         monitor.setTextColor(colors.purple)
  50.     else if reactorA.getCasingTemperature()>=950 then
  51.             monitor.setTextColor(colors.red)
  52.         else
  53.             monitor.setTextColor(colors.green)
  54.         end
  55.     end
  56.     monitor.write('Reactor A: '..math.floor(reactorA.getCasingTemperature())..'C')
  57.     monitor.setCursorPos(1,14)
  58.  
  59.     monitor.setCursorPos(1,15)
  60.     monitor.setTextColor(colors.white)
  61.     monitor.write('Flux:')
  62.     monitor.setCursorPos(1,16)
  63.     monitor.setTextColor(colors.green)
  64.     monitor.write('Reactor A: '..reactorA.getEnergyStored()..' RF Stored ')
  65.      
  66.     if reactorA.getEnergyProducedLastTick()>=500 and reactorA.getEnergyProducedLastTick()<2000 then
  67.         monitor.setTextColor(colors.orange)
  68.     end
  69.      
  70.     if reactorA.getEnergyProducedLastTick()>=2000 then
  71.         monitor.setTextColor(colors.red)
  72.     end
  73.     monitor.setCursorPos(1,17)
  74.     monitor.write('Produced:  '..(math.floor(reactorA.getEnergyProducedLastTick()+0.5))..' RF/t')
  75.        
  76.     monitor.setCursorPos(1,19)
  77.     monitor.setTextColor(colors.orange)
  78.     monitor.write('Warnings:')
  79.      
  80.     if flashflag==0 then
  81.       flashflag=1
  82.       if offlineflag==1 then
  83.         monitor.setCursorPos(1,20)
  84.         monitor.setTextColor(colors.lightGray)
  85.         monitor.write('OFFLINE - Manual Override')
  86.       end
  87.       if emptyflag==1 then
  88.         monitor.setCursorPos(1,21)
  89.         monitor.setTextColor(colors.pink)
  90.         monitor.write('OFFLINE - Fuel Exhausted')
  91.       end
  92.       if emptyflag==0 and offlineflag==0 and reactorA.getControlRodLevel(0)>75 then
  93.         monitor.setCursorPos(1,21)
  94.         monitor.setTextColor(colors.yellow)
  95.         monitor.write('ONLINE - Low Power Mode')
  96.       end
  97.       if emptyflag==0 and offlineflag==0 and reactorA.getControlRodLevel(0)<=75 then
  98.         monitor.setCursorPos(1,21)
  99.         monitor.setTextColor(colors.orange)
  100.         monitor.write('ONLINE - High Power Mode')
  101.       end
  102.     else
  103.       flashflag=0
  104.       monitor.setCursorPos(1,21)
  105.       monitor.clearLine()
  106.     end
  107.      
  108.     if reactorA.getEnergyStored()<=10000000 and reactorA.getEnergyStored()>100 then
  109.         reactorA.setAllControlRodLevels(0+(math.floor(reactorA.getEnergyStored()/100000)))
  110.     else
  111.         reactorA.setAllControlRodLevels(0)
  112.     end
  113.      
  114.    
  115.     if (reactorA.getFuelAmount()<=100) and offlineflag==0 then
  116.         reactorA.setAllControlRodLevels(100)
  117.         reactorA.setActive(false)
  118.         emptyflag=1
  119.     else
  120.         emptyflag=0
  121.     end
  122.          
  123.     if rs.getInput('bottom')==false and emptyflag==0 then
  124.         reactorA.setActive(true)
  125.         offlineflag=0
  126.     end
  127.      
  128.     if rs.getInput('bottom')==true and emptyflag==0 then
  129.         reactorA.setActive(false)
  130.         reactorA.setAllControlRodLevels(100)
  131.         offlineflag=1
  132.     end    
  133.     sleep(1)
  134.     end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement