Advertisement
LaniusFNV

CC Reactor

Nov 26th, 2020 (edited)
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.16 KB | None | 0 0
  1. local reactor = peripheral.find("BigReactors-Reactor")
  2. local capacitor = peripheral.find("enderio:tile_cap_bank")
  3.  
  4. local function controlRodInsertionLevelByEnergyStored(goal_percentage)
  5.     local total_energy = reactor.getEnergyStored()
  6.     local energy_capacity = reactor.getEnergyCapacity()
  7.  
  8.     if capacitor ~= nil then
  9.         total_energy = total_energy + capacitor.getEnergyStored()
  10.         energy_capacity = energy_capacity + capacitor.getEnergyCapacity()
  11.     end
  12.  
  13.     return math.floor(math.min(total_energy / energy_capacity * 100 / (goal_percentage / 100), 100))
  14. end
  15.  
  16. local function main(goal_percentage)
  17.     while true do
  18.         local control_rod_insertion_level = controlRodInsertionLevelByEnergyStored(goal_percentage)
  19.         reactor.setAllControlRodLevels(control_rod_insertion_level)
  20.  
  21.         if control_rod_insertion_level < 80 then -- we may as well shut off at eighty percent to save on some fuel
  22.             reactor.setActive(true)
  23.         else
  24.             reactor.setActive(false)
  25.         end
  26.  
  27.         term.clear()
  28.         term.setCursorPos(1, 1)
  29.         term.write(control_rod_insertion_level)
  30.  
  31.         sleep(10)
  32.     end
  33. end
  34.  
  35. main(30)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement