Advertisement
minecraft_storm

reactorcontrol

Nov 22nd, 2021 (edited)
397
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.99 KB | None | 0 0
  1. reactor = peripheral.wrap("BigReactors-Reactor_1")
  2. cell = peripheral.wrap("thermalexpansion:storage_cell_1")
  3.  
  4. celldata = cell.getMetadata()
  5. stored = celldata.energy.stored/1000000
  6. capacity = celldata.energy.capacity/1000000
  7. print(stored)
  8. print(capacity)
  9.  
  10. local power = ...
  11. if power == nil then
  12.     power = capacity-0.5
  13. end
  14. print(power)
  15.  
  16. level = reactor.getControlRodLevel(0)
  17. reactor.setAllControlRodLevels(level)
  18. print(level)
  19. print("run")
  20. print()
  21.  
  22. if power == "off" then
  23.     reactor.setAllControlRodLevels(100)
  24. elseif tonumber(power) > 0 then
  25.     run = true
  26.     threshold = 1
  27.     setlevel = tonumber(power)
  28.     storedold = -1
  29.     olddiffrence = -1
  30.     diffrence = 0
  31.     base = 100
  32.     while run do
  33.         os.queueEvent("tmp")
  34.         local evt, key = os.pullEvent()
  35.         if evt == "key" then
  36.             if key == 211 then
  37.                 run = false
  38.             end
  39.         end
  40.         celldata = cell.getMetadata()
  41.         stored = celldata.energy.stored/1000000
  42.         if stored ~= storedold then
  43.             diffrence = stored-setlevel
  44.             storedold = stored
  45.         end
  46.         if diffrence ~= olddiffrence then
  47.             speed = diffrence-olddiffrence
  48.             olddiffrence = diffrence
  49.         end
  50.         if diffrence > 0 then
  51.             base = 100
  52.         end
  53.         level = base+((diffrence*(capacity/stored))+speed*3)
  54.         print("level")
  55.         print(level)
  56.         print("base")
  57.         print(base)
  58.         print("speed")
  59.         print(speed)
  60.         if speed < 0.000500 then
  61.             --increase production
  62.             if base > 90 then
  63.                 base = base-1
  64.             end
  65.         elseif speed > 0.000500 then
  66.             --decrease production
  67.             if base < 100 then
  68.                 base = base+1
  69.             end
  70.         end
  71.         if level >= 100 then
  72.             level = 100
  73.         elseif level <= 60 then
  74.             level = 60
  75.         end
  76.         reactor.setAllControlRodLevels(level)
  77.     end
  78. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement