Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function calc_color(color)
- return math.pow(2, color - 1)
- end
- function msg(gap, line, color, groundb, text)
- term.setBackgroundColor(calc_color(groundb))
- term.setCursorPos(gap,line)
- term.setTextColor(calc_color(color))
- text = term.write(text)
- end
- function clear()
- for a = 5,20 do
- for b = 1,50, 10 do
- msg(b,a,16,16," ")
- end
- end
- end
- while true do
- term.setBackgroundColor(colors.black)
- term.setTextColor(colors.white)
- term.setCursorPos(1,1)
- term.clear()
- -- Funktion, um die Liste einzulesen und die Daten für einen Levelbereich zu summieren
- function getLevelRangeData(startLevel, endLevel)
- local file = fs.open("dustlist", "r")
- local sumAsh, sumMiniumdust, sumVerdandust, sumAzuredust, sumAmaranthinedust, sumIridescentdust = 0, 0, 0, 0, 0, 0
- -- Datei Zeile für Zeile lesen
- for line in file.readLine do
- local parts = {}
- for part in string.gmatch(line, "%S+") do
- table.insert(parts, part)
- end
- if #parts >= 7 then
- local level = tonumber(parts[1])
- if level and level >= tonumber(startLevel) and level <= tonumber(endLevel) then
- -- Summiere die Werte
- sumAsh = sumAsh + tonumber(parts[2])
- sumMiniumdust = sumMiniumdust + tonumber(parts[3])
- sumVerdandust = sumVerdandust + tonumber(parts[4])
- sumAzuredust = sumAzuredust + tonumber(parts[5])
- sumAmaranthinedust = sumAmaranthinedust + tonumber(parts[6])
- sumIridescentdust = sumIridescentdust + tonumber(parts[7])
- end
- end
- end
- file.close()
- return sumAsh, sumMiniumdust, sumVerdandust, sumAzuredust, sumAmaranthinedust, sumIridescentdust
- end
- function getLevelInput(prompt)
- local level = nil
- while not level do
- print(prompt)
- level = tonumber(read())
- if not level then
- print("Ungültige Eingabe. Bitte eine Zahl eingeben.")
- end
- end
- return level
- end
- msg(16,02,05,16," SMF Dust Rechner ")
- msg(16,03,05,16," ~~~~~~~~~~~~~~~~ ")
- clear()
- term.setTextColor(colors.lightBlue)
- term.setCursorPos(1,5)
- local startLevel = getLevelInput("Dein aktuelles SMF Level:")
- startLevel = startLevel + 1
- clear()
- term.setTextColor(colors.lightBlue)
- term.setCursorPos(1,5)
- local endLevel = getLevelInput("Das SMF Ziel-Level:")
- clear()
- if startLevel > endLevel then
- term.setTextColor(colors.red)
- term.setCursorPos(1,8)
- print("Ungültige Eingabe.")
- print("Start-Level muss kleiner als Zeil-Level sein.")
- sleep(4)
- shell.run("SMF-Dustcalculator_DE")
- elseif endLevel > 3000 then
- term.setTextColor(colors.red)
- term.setCursorPos(1,8)
- print("Ungültige Eingabe.")
- print("Zeil-Level darf nicht höher als 3000 sein.")
- sleep(4)
- shell.run("SMF-Dustcalculator_DE")
- end
- local sumAsh, sumMiniumdust, sumVerdandust, sumAzuredust, sumAmaranthinedust, sumIridescentdust = getLevelRangeData(startLevel, endLevel)
- clear()
- msg(01,05,04,16,"Resourcen benötigt von Level " .. startLevel .. " bis " .. endLevel)
- msg(01,07,09,16,"Ash: " .. sumAsh)
- msg(01,08,15,16,"Minium: " .. sumMiniumdust)
- msg(01,09,14,16,"Verdan: " .. sumVerdandust)
- msg(01,10,10,16,"Azure: " .. sumAzuredust)
- msg(01,11,11,16,"Amaranthine: " .. sumAmaranthinedust)
- msg(01,12,08,16,"Iridescent: " .. sumIridescentdust)
- --Programm neustarten )
- msg(01,17,01,06," -> neue Berechnung starten <- ")
- msg(01,19,01,15," -> System Neustart <- ")
- local event, button, X, Y = os.pullEvent("mouse_click")
- if X >= 01 and X <= 51 and Y == 17 then --neue Berechnung
- -- neue berechnung
- elseif X >= 01 and X <= 51 and Y == 19 then --restart
- os.reboot()
- end
- sleep(0.5)
- end
Advertisement
Add Comment
Please, Sign In to add comment