Advertisement
mrkarp

KarpBRControl

Dec 4th, 2014
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.10 KB | None | 0 0
  1.  --Karps Reactor Control
  2.         --Modified from some Reactor Control CC Stuff (sorry no idea who author is, but he is cool)
  3.         --Implements SunnyD's ProgressBar API
  4.         --Implements Lyqyd's Touchpoint API
  5.         --For 3x3 monitor for now
  6.  
  7.  
  8. -- Get Variables
  9. function getVars()
  10. -- Vars
  11.         -- Fuel
  12.         fuelMax = reactor.getFuelAmountMax()
  13.         fuelAmount = reactor.getFuelAmount()
  14.        
  15.         -- Waste
  16.         wasteMax = reactor.getFuelAmountMax()
  17.         wasteAmount = reactor.getWasteAmount()
  18.  
  19.         -- Temps
  20.         casingTemp = reactor.getCasingTemperature()
  21.         fuelTemp = reactor.getFuelTemperature()
  22.        
  23.         -- Flux
  24.         rfStored = reactor.getEnergyStored()
  25.         rfStoredFormat = rfStored / 1000
  26.         rfPerTick = reactor.getEnergyProducedLastTick()
  27.        
  28. -- Strings
  29.         fuelAmountText = math.floor(((reactor.getFuelAmount()/reactor.getFuelAmountMax())*100)+0.5)
  30.         wasteAmountText = math.floor(((reactor.getWasteAmount()/reactor.getFuelAmountMax())*100)+0.5)
  31.         casingTempText = math.floor(reactor.getCasingTemperature()*100)+0.5
  32. end
  33.  
  34. -- Get number of rods and make variables
  35. function getRods(numberRods)
  36.         for i = 0, numberRods do
  37.         rodName = 'r'..i
  38.         rodLevel = (100-(reactor.getControlRodLevel(i)))
  39.         end
  40. end
  41.  
  42.  
  43. function writeTitles(curX, curY, label, color)
  44.         monitor.setCursorPos(curX, curY)
  45.         monitor.setTextColor(colors..'.'..color)
  46.         monitor.write(label)
  47.        
  48.         --monitor.setCursorPos(1,5)
  49.         --monitor.write('Control Rod Levels:')
  50.         --monitor.setCursorPos(1,6)
  51.         --monitor.write('R1: ')
  52.         --monitor.setCursorPos(1,7)
  53.         --monitor.write('R2: ')
  54.         --monitor.setCursorPos(1,8)
  55.         --monitor.write('R3: ')
  56.         --monitor.setCursorPos(1,9)
  57.         --monitor.write('R4: ')
  58.        
  59.         --monitor.setCursorPos(1,11)
  60.         --monitor.write('Temperature:')
  61.         --monitor.setCursorPos(1,12)
  62.         --monitor.setTextColor(colors.lightGray)
  63.         --monitor.write('Casing: ')
  64.         --monitor.setTextColor(colors.yellow)
  65.         --monitor.write('Fuel: ')
  66.        
  67.         --monitor.setCursorPos(1,15)
  68.         --monitor.write('Flux:')
  69.        
  70. end
  71.        
  72. -- Draw Bars ProgressBar.SetTable("name", max, current, xMin, xMax, y)
  73. function drawBars(label, maxAmount, currentAmount, xMin, xMax, y)
  74.         ProgressBar.SetTable(label, maxAmount, currentAmount, xMin, xMax, y)
  75.  
  76.         --ProgressBar.SetTable("Fuel", fuelMax, fuelAmount, 2,17,2)
  77.         --ProgressBar.SetTable("Waste", wasteMax, wasteAmount, 2,17,3)
  78.         --ProgressBar.SetTable("R1", 100, r1, 4,15,6)
  79.         --ProgressBar.SetTable("R2", 100, r2, 4,15,7)
  80.         --ProgressBar.SetTable("R3", 100, r3, 4,15,8)
  81.         --ProgressBar.SetTable("R4", 100, r4, 4,15,9)
  82.         --ProgressBar.SetTable("CasingTemp", 10000, casingTemp, 9,20,12)
  83.         --ProgressBar.SetTable("FuelTemp", 10000, fuelTemp, 9,20,13)
  84.        
  85. end
  86.  
  87. function writeControlRods(curX, curY, label, rodNumber)
  88.         monitor.setCursorPos(curX, curY)
  89.         monitor.write(label)
  90.         monitor.setCursorPos(20, curY)
  91.         monitor.write(' '..(100-(reactor.getControlRodLevel(rodNumber)))..'% Depth')
  92. end
  93.        
  94.        
  95. if not fs.exists('ProgressBar') then
  96.         print('Downloading API...')
  97.         pastebin get rzxj0kkm ProgressBar
  98. else
  99.         print('You have the API')
  100. end
  101.  
  102. -- Load ProgressBar API
  103. os.loadAPI("ProgressBar")
  104. ProgressBar.SetPeripheral("back")
  105.  
  106. -- Vars
  107. emptyflag = 0
  108. offlineflag = 0
  109. flashflag = 0
  110.  
  111. -- Peripherals
  112. reactor = peripheral.wrap('BigReactors-Reactor_1')
  113. monitor = peripheral.wrap('back')
  114.  
  115. -- Monitor Settings
  116. monitor.setTextScale(1)
  117. monitor.setBackgroundColor(colors.black)
  118.  
  119. write("Number of control rods: ")
  120. userNumberRods = os.read()
  121. userNumberRods = userNumberRods - 1
  122.  
  123. while true do
  124.         monitor.clear()
  125.         sleep(1)
  126.         getVars()
  127.         getRods(userNumberRods)
  128.         for r = 0, numberRods do
  129.             y = 6
  130.             drawBars("", 100, rodLevel, 4, 15, y)
  131.             y = y +1           
  132.         end
  133.        
  134.         ProgressBar.DrawToPeripheral()
  135. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement