Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- print('ReactorControl Engaged. View Monitor.')
- emptyflag=0
- offlineflag=0
- flashflag=0
- reactorA=peripheral.wrap('BigReactors-Reactor_1')
- monitor=peripheral.wrap('right')
- monitor.setTextScale(1)
- monitor.setBackgroundColor(colors.black)
- while true do
- monitor.clear()
- monitor.setCursorPos(1,1)
- monitor.setTextColor(colors.white)
- monitor.write('Fuel Level:')
- monitor.setCursorPos(1,2)
- monitor.setTextColor(colors.yellow)
- monitor.write(math.floor(((reactorA.getFuelAmount()/reactorA.getFuelAmountMax())*100)+0.5)..'% Fuel')
- monitor.setCursorPos(1,3)
- monitor.setTextColor(colors.lightBlue)
- monitor.write(math.floor(((reactorA.getWasteAmount()/reactorA.getFuelAmountMax())*100)+0.5)..'% Waste')
- monitor.setCursorPos(1,5)
- monitor.setTextColor(colors.white)
- monitor.write('Control Rod Levels:')
- monitor.setTextColor(colors.green)
- monitor.setCursorPos(1,6)
- monitor.write('Rod 1a: '..(100-(reactorA.getControlRodLevel(0)))..'% Depth')
- monitor.setCursorPos(1,7)
- monitor.write('Rod 2a: '..(100-(reactorA.getControlRodLevel(1)))..'% Depth')
- monitor.setCursorPos(1,8)
- monitor.write('Rod 3a: '..(100-(reactorA.getControlRodLevel(2)))..'% Depth')
- monitor.setCursorPos(1,9)
- monitor.write('Rod 4a: '..(100-(reactorA.getControlRodLevel(3)))..'% Depth')
- monitor.setCursorPos(1,10)
- monitor.write('Rod 5a: '..(100-(reactorA.getControlRodLevel(4)))..'% Depth')
- monitor.setCursorPos(22,6)
- monitor.write('Rod 6a: '..(100-(reactorA.getControlRodLevel(5)))..'% Depth')
- monitor.setCursorPos(22,7)
- monitor.write('Rod 7a: '..(100-(reactorA.getControlRodLevel(6)))..'% Depth')
- monitor.setCursorPos(22,8)
- monitor.write('Rod 8a: '..(100-(reactorA.getControlRodLevel(7)))..'% Depth')
- monitor.setCursorPos(1,12)
- monitor.setTextColor(colors.white)
- monitor.write('Temperature:')
- monitor.setCursorPos(1,13)
- if reactorA.getCasingTemperature()>=650 then
- monitor.setTextColor(colors.purple)
- else if reactorA.getCasingTemperature()>=950 then
- monitor.setTextColor(colors.red)
- else
- monitor.setTextColor(colors.green)
- end
- end
- monitor.write('Reactor A: '..math.floor(reactorA.getCasingTemperature())..'C')
- monitor.setCursorPos(1,14)
- monitor.setCursorPos(1,15)
- monitor.setTextColor(colors.white)
- monitor.write('Flux:')
- monitor.setCursorPos(1,16)
- monitor.setTextColor(colors.green)
- monitor.write('Reactor A: '..reactorA.getEnergyStored()..' RF Stored ')
- if reactorA.getEnergyProducedLastTick()>=500 and reactorA.getEnergyProducedLastTick()<2000 then
- monitor.setTextColor(colors.orange)
- end
- if reactorA.getEnergyProducedLastTick()>=2000 then
- monitor.setTextColor(colors.red)
- end
- monitor.setCursorPos(1,17)
- monitor.write('Produced: '..(math.floor(reactorA.getEnergyProducedLastTick()+0.5))..' RF/t')
- monitor.setCursorPos(1,19)
- monitor.setTextColor(colors.orange)
- monitor.write('Warnings:')
- if flashflag==0 then
- flashflag=1
- if offlineflag==1 then
- monitor.setCursorPos(1,20)
- monitor.setTextColor(colors.lightGray)
- monitor.write('OFFLINE - Manual Override')
- end
- if emptyflag==1 then
- monitor.setCursorPos(1,21)
- monitor.setTextColor(colors.pink)
- monitor.write('OFFLINE - Fuel Exhausted')
- end
- if emptyflag==0 and offlineflag==0 and reactorA.getControlRodLevel(0)>75 then
- monitor.setCursorPos(1,21)
- monitor.setTextColor(colors.yellow)
- monitor.write('ONLINE - Low Power Mode')
- end
- if emptyflag==0 and offlineflag==0 and reactorA.getControlRodLevel(0)<=75 then
- monitor.setCursorPos(1,21)
- monitor.setTextColor(colors.orange)
- monitor.write('ONLINE - High Power Mode')
- end
- else
- flashflag=0
- monitor.setCursorPos(1,21)
- monitor.clearLine()
- end
- if reactorA.getEnergyStored()<=10000000 and reactorA.getEnergyStored()>100 then
- reactorA.setAllControlRodLevels(0+(math.floor(reactorA.getEnergyStored()/100000)))
- else
- reactorA.setAllControlRodLevels(0)
- end
- if (reactorA.getFuelAmount()<=100) and offlineflag==0 then
- reactorA.setAllControlRodLevels(100)
- reactorA.setActive(false)
- emptyflag=1
- else
- emptyflag=0
- end
- if rs.getInput('bottom')==false and emptyflag==0 then
- reactorA.setActive(true)
- offlineflag=0
- end
- if rs.getInput('bottom')==true and emptyflag==0 then
- reactorA.setActive(false)
- reactorA.setAllControlRodLevels(100)
- offlineflag=1
- end
- sleep(1)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement