Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- component = require("component")
- event = require("event")
- math = require("math")
- reactor = component.br_reactor
- buffer = component.induction_matrix
- n=0
- turbines = {}
- lst = component.list("br_turbine")
- for i, _ in pairs(lst) do
- turbines[n] = component.proxy(i)
- n = n+1
- end
- trbcnt = n
- function setTurbineOutput(num)
- im = 0
- if (num<=trbcnt) then
- for i = 0, (math.floor(num,0)-1) do
- turbines[i].setActive(true)
- turbines[i].setInductorEngaged(true)
- turbines[i].setFluidFlowRateMax(2000)
- im = i+1
- print("test1")
- end
- if num~=math.floor(num,0) then
- turbines[im].setActive(true)
- turbines[im].setInductorEngaged(true)
- turbines[im].setFluidFlowRateMax(1000)
- im = im + 1
- end
- for i=im,n-1 do
- turbines[i].setActive(false)
- end
- return num
- else
- return -1
- end
- end
- function balanceReactor()
- temp = reactor.getFuelTemperature()
- if temp<700 then
- reactor.setAllControlRodLevels(reactor.getControlRodLevel(1)-1)
- elseif temp>500 then
- reactor.setAllControlRodLevels(reactor.getControlRodLevel(1)+1)
- end
- end
- function normalMode()
- maxEn = buffer.getMaxEnergy()
- storedEn = buffer.getEnergyStored()
- charge = storedEn/maxEn
- if charge>.8 then
- reCharge = false
- emergencyCharge = false
- elseif charge<.33 and (not emergencyCharge) then
- reCharge = true
- elseif charge<.1 then
- reCharge = false
- emergencyCharge = true
- end
- print(charge)
- inp = buffer.getInput()
- outp = buffer.getOutput()
- chargeRate = inp-outp
- trbReq = math.floor((-1*chargeRate)/14000,0)/2
- if trbReq<0 then trbReq = 0 end
- if reCharge then trbReq = trbReq+.5 end
- if emergencyCharge then trbReq = trbcnt end
- setTurbineOutput(trbReq)
- end
- function spinUpMode()
- end
- function maxPower()
- setTurbineOutput(trbcnt)
- end
- ----------main
- while true do
- normalMode()
- balanceReactor()
- os.sleep(1)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement