Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Variablen
- local reactor = peripheral.wrap("BigReactors-Reactor_0")
- local monitor = peripheral.wrap("right")
- local energyStorage = peripheral.wrap("draconic_rf_storage_0")
- local energystored = 0
- local maxEnergy = 0
- local maxEnergyOutput = 43000
- local i = 0
- local zeile = 1
- local x = 0
- local y = 0
- local barLength = 82
- --Funktionen
- function round(num, idp)
- local mult = 10^(idp or 0)
- return math.floor(num * mult + 0.5) / mult
- end
- function drawLine(x, y, length, color, colorBG)
- term.setBackgroundColor(colorBG)
- for i = 1, barLength, 1 do
- term.write(" ")
- end
- term.setCursorPos(1, y)
- term.setBackgroundColor(color)
- for i = 1, barLength/100*round(length,0), 1 do
- term.write(" ")
- end
- term.setBackgroundColor(colors.white)
- end
- --Init
- monitor.clear()
- monitor.setTextScale(1)
- monitor.setTextColor(colors.black)
- monitor.setBackgroundColor(colors.white)
- term.redirect(monitor)
- maxEnergy = energyStorage.getMaxEnergyStored()
- --Programm
- if reactor.getConnected() == true then
- while true do
- zeile = 1
- sleep(0.5)
- monitor.clear()
- monitor.setCursorPos(1,zeile)
- zeile = zeile + 1
- if reactor.getActive() then
- monitor.setTextColor(colors.black)
- monitor.write("Reaktor aktiv RF/Tick: ")
- monitor.write(round(reactor.getEnergyProducedLastTick(),0))
- monitor.setCursorPos(1,zeile)
- drawLine(1, zeile, (round(reactor.getEnergyProducedLastTick() / maxEnergyOutput * 100,0)), colors.red, colors.blue)
- else
- monitor.setTextColor(colors.red)
- monitor.write("Reaktor inaktiv")
- end
- zeile = zeile + 1
- monitor.setCursorPos(1,zeile)
- monitor.setTextColor(colors.black)
- monitor.setCursorPos(1,zeile)
- zeile = zeile + 1
- if (energystored / maxEnergy * 10) > 9 then
- reactor.setActive(false)
- end
- if (energystored / maxEnergy * 10) < 2 then
- reactor.setActive(true)
- end
- if redstone.getInput("bottom") then
- reactor.setAllControlRodLevels(100)
- reactor.setActive(false)
- end
- monitor.setCursorPos(1, zeile)
- monitor.write("Energiespeicher:")
- zeile = zeile + 1
- monitor.setCursorPos(1, zeile)
- monitor.write(round(energyStorage.getEnergyStored() / 1000000, 2))
- monitor.write(" MIO | ")
- monitor.write(round(energystored / maxEnergy * 100,2))
- monitor.write("%")
- zeile = zeile + 1
- monitor.setCursorPos(1, zeile)
- if (energystored / maxEnergy * 10) > 7 then
- drawLine(1, zeile, (energystored / maxEnergy * 100), colors.green, colors.blue)
- end
- if ((energystored / maxEnergy * 10) > 3) and ((energystored / maxEnergy * 10) < 7) then
- drawLine(1, zeile, (energystored / maxEnergy * 100), colors.yellow, colors.blue)
- end
- if (energystored / maxEnergy * 10) < 3 then
- drawLine(1, zeile, (energystored / maxEnergy * 100), colors.red, colors.blue)
- end
- energystored = energyStorage.getEnergyStored()
- zeile = zeile + 2
- monitor.setCursorPos(1, zeile)
- monitor.write("Gruen:Fuellstand (" .. round((reactor.getFuelAmount() / reactor.getFuelAmountMax() * 100),2) .."%) | Rot:Abfall (" .. round((reactor.getWasteAmount() / reactor.getFuelAmountMax() * 100),2) .."%)")
- zeile = zeile + 1
- monitor.setCursorPos(1, zeile)
- drawLine(1, zeile, round((reactor.getFuelAmount() / reactor.getFuelAmountMax() * 100),2), colors.green, colors.blue)
- zeile = zeile + 1
- monitor.setCursorPos(1, zeile)
- drawLine(1, zeile, round((reactor.getWasteAmount() / reactor.getFuelAmountMax() * 100),2), colors.red, colors.blue)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement