Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- write("Init Turbine ... ")
- local turbine
- turbine = peripheral.find("BigReactors-Turbine")
- print("Done")
- write("Init Monitor ... ")
- local mon
- mon = peripheral.wrap("back")
- print("Done")
- write("Init Modem ... ")
- rednet.open("bottom")
- pripnt("Done")
- write("Init Values ... ")
- TankTimeout = 1
- NumTanks = 7
- Tanks = {"tk01", "tk02", "tk03", "tk04", "tkA1", "tkA2", "tkA3"}
- Fluid = {"oil", "oil", "oil", "oil", "stm", "gas", "dsl"}
- MxAmt = {6400, 6400, 6400, 6400, 6400, 6400, 6400}
- CrStp = {0, 0, 0, 0, 0, 0, 0}
- MxStp = {4, 4, 4, 4, 4, 4, 4}
- MxOil = 0
- CrOil = 0
- MxStm = 0
- CrStm = 0
- MxGas = 0
- CrGas = 0
- MxDsl = 0
- CrDsl = 0
- print("Done")
- function UpdateTurbine()
- print("Printing Rotor Speed")
- mon.setCursorPos(1,1)
- mon.write("Rotor Speed")
- speed = turbine.getRotorSpeed()
- speed = math.floor(speed)
- mon.setCursorPos(1,2)
- mon.write(tostring(speed).." RPM")
- print("Printing Fluid Flow Rate")
- mon.setCursorPos(1,4)
- mon.write("Steam Flow")
- flow = turbine.getFluidFlowRate()
- mon.setCursorPos(1,5)
- mon.write(tostring(flow).." mb/t")
- print("Printing Power Output")
- mon.setCursorPos(1,7)
- mon.write("Power Output")
- powerOut = turbine.getEnergyProducedLastTick()
- mon.setCursorPos(1,8)
- mon.write(tostring(math.floor(powerOut)).." RF/t")
- end
- function UpdateFluids()
- print("Printing Oil Stat")
- mon.setCursorPos(16,1)
- mon.write("Oil")
- mon.setCursorPos(16,2)
- mon.write(tostring(math.floor(CrOil / MxOil * 100)).."% ~"..CrOil.." B")
- print("Printing Gasoline Stat")
- mon.setCursorPos(16,4)
- mon.write("Gasoline")
- mon.setCursorPos(16,5)
- mon.write(tostring(math.floor(CrGas / MxGas * 100)).."% ~"..CrGas.." B")
- print("Printing Diesel Stat")
- mon.setCursorPos(16,7)
- mon.write("Diesel")
- mon.setCursorPos(16,8)
- mon.write(tostring(math.floor(CrDsl / MxDsl * 100)).."% ~"..CrDsl.." B")
- print("Printing Stem Stat")
- mon.setCursorPos(16,10)
- mon.write("Steam")
- mon.setCursorPos(16,11)
- mon.write(tostring(math.floor(CrStm / MxStm * 100)).."% ~"..CrStm.." B")
- end
- write("Init Tank Max Vals ... ")
- for i = 1, NumTanks do
- if (Fluid[i] == "oil") then
- MxOil = MxOil + MxAmt[i]
- elseif (Fluid[i] == "stm") then
- MxStm = MxStm + MxAmt[i]
- elseif (Fluid[i] == "gas") then
- MxGas = MxGas + MxAmt[i]
- elseif (Fluid[i] == "dsl") then
- MxDsl = MxDsl + MxAmt[i]
- end
- end
- print("Done")
- print("Begining Loop")
- while (true) do
- print("Clearing Values")
- CrOil = 0
- CrStm = 0
- CrGas = 0
- CrDsl = 0
- for i = 1, NumTanks do
- print("Checking Tank "..Tanks[i])
- rednet.broadcast(Tanks[i], "tanks")
- print("Awaiting Response")
- senderID, msg, protocol = rednet.receive("tanks", TankTimeout)
- print("Received: "..msg)
- CrStp[i] = tonumber(msg) or 0
- if (Fluid[i] == "oil") then
- fPct = CrStp[i] / MxStp[i]
- aCty = fPct * MxAmt[i]
- CrOil = CrOil + aCty
- -- CrOil = CrOil + (CrStp[i] / MxStp[i] * MxAmt[i])
- elseif (Fluid[i] == "stm") then
- CrStm = CrStm + (CrStp[i] / MxStp[i] * MxAmt[i])
- elseif (Fluid[i] == "gas") then
- CrGas = CrGas + (CrStp[i] / MxStp[i] * MxAmt[i])
- elseif (Fluid[i] == "dsl") then
- CrDsl = CrDsl + (CrStp[i] / MxStp[i] * MxAmt[i])
- end
- end
- mon.clear()
- UpdateTurbine()
- UpdateFluids()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement