Advertisement
PlatinKinggg

Reaktoranzeige Stavros Startup

May 4th, 2015 (edited)
1,615
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.51 KB | None | 0 0
  1. -- Einführung in die Stavros Reaktorprogramme
  2.  
  3. -- Dieses Programm ist der Autoupdater für das Stavros Reaktoranzeige Programm inkl. aller Zusatzdateien.
  4. -- Das Steuerprogramm zeigt die Werte einen Bigger Reaktors(aktiv/passiv) auf einem Monitor an und kann darüber gesteuert werden.
  5. -- Es aktualisiert sich und alle benötigten Dateien selbstständig und fährt automatisch beim Start des CC-Computers hoch.
  6. -- Damit ist korrekt läuft, schließe per Modem mindestens einen Monitor von 2x3 Blöcken, einen Reaktor und optional einen
  7. -- Alarm(auf dem Computer) an.
  8.  
  9. -- Für Fragen melde dich bitte bei PlatinKinggg
  10. -- Copyright PlatinKinggg
  11. -- Frei zur Verteilung
  12. -- Viel Spaß mit dem Programm :D
  13.  
  14. local startUp = {"jf5L1Akr", "startup", "Autoupdate wurde in startup installiert", "Autoupdate wurde erfolgreich aktualisiert. Starte den PC in 5 Sekunden neu...", "Autoupdate ist aktuell"}
  15.  
  16. local reactorProgram = {"c3dEptJE", "Reaktoranzeige", "Reaktoranzeige Stavros wurde erfolgreich installiert", "Reaktoranzeige Stavros wurde erfolgreich aktualisiert", "Reaktoranzeige Stavros ist aktuell"}
  17.  
  18. local programConfig = {"GN3FHDUV", "Programmkonfiguration", "Die Programmkonfiguration wurde erfolgreich hinterlegt", "Die Programmkonfiguration wurde erfolgreich aktualisiert", "Die Programmkonfiguration ist aktuell"}
  19.  
  20. local functions_BiggerReactor = {"BaFecRTj", "Funktionen", "Die Funktion-Datei wurde erfolgreich hinterlegt", "Die Funktion-Datei wurden aktualisiert", "Die Funktion-Datei ist aktuell"}
  21.  
  22. local functions_BigReactor = {"59QBHZQx", "Funktionen", "Die Funktion-Datei wurde erfolgreich hinterlegt", "Die Funktion-Datei wurden aktualisiert", "Die Funktion-Datei ist aktuell"}
  23.  
  24. -- local functions_BiggerReactors_Turbine = {" TBD ", "Funktionen", "Die Funktion-Datei wurde erfolgreich hinterlegt", "Die Funktion-Datei wurden aktualisiert", "Die Funktion-Datei ist aktuell"}
  25.  
  26. local functions_BigReactors_Turbine = {"eK7dpNCX", "Funktionen", "Die Funktion-Datei wurde erfolgreich hinterlegt", "Die Funktion-Datei wurden aktualisiert", "Die Funktion-Datei ist aktuell"}
  27.  
  28. local readMeVariables = {"UFQ64gxA", "ReadMeVariables", "Eine ReadMe für die verwendeten Variablen wurden heruntergeladen", "Die ReadMe für die verwendeten Variablen wurden aktualisiert", "Die ReadMe für die verwendeten Variablen ist aktuell"}
  29.  
  30. --[[
  31. Funktion zur Prüfung, ob und welche Multiblockstruktur an das Netzwerk angebunden wurde. Es wird gefiltert, ob mehr als ein Reaktor ODER (mehrere) Turbinen angeschlossen sind. Werden mehrere Reaktoren oder kombiniert Reaktor und Turbinen erkannt, wird eine Fehlermeldung ausgegeben.
  32. ]]
  33.  
  34. local function peripheralCheck()
  35. local reactor = nil
  36. local turbine = nil
  37.     for _, name in ipairs(peripheral.getNames()) do
  38.         local deviceType = peripheral.getType(name)
  39.  
  40.         if deviceType == "BigReactors-Reactor" or deviceType == "BiggerReactors-Reactor" then
  41.             if reactor then
  42.                 print("Fehler: Mehr als ein Reaktor gefunden! Bitte beheben!")
  43.                 print("Programm wird gestoppt und der CC-Computer in 30 Sekunden neugestartet")
  44.                 sleep(30)
  45.                 os.reboot()
  46.             end
  47.             reactor = deviceType
  48.  
  49.         elseif deviceType == "BigReactors-Turbine" or deviceType == "BiggerReactors-Turbine" then
  50.             turbine = deviceType
  51.         end
  52.     end
  53.  
  54.     if reactor and turbine then
  55.         print("Fehler: Sowohl ein Reaktor als auch eine Turbine gefunden!")
  56.         print("Das Programm unterstützt pro Computer nur einen Reaktor ODER mehrere Turbinen")
  57.         print("Bitte beheben!")
  58.         print("Programm wird gestoppt und der CC-Computer in 30 Sekunden neugestartet")
  59.         sleep(30)
  60.         os.reboot()
  61.     end
  62.     return reactor or turbine
  63. end
  64.  
  65. local function fileCheck(file)
  66.     shell.run("pastebin","get", file[1], file[2] .. "Copy")
  67.     if fs.exists(file[2]) == false then
  68.         fs.copy(file[2] .. "Copy", file[2])
  69.         fs.delete(file[2] .. "Copy")
  70.         term.setTextColor(colors.red)
  71.         print(file[3])
  72.         term.setTextColor(colors.white)
  73.         sleep(2)
  74.     elseif fs.getSize(file[2] .. "Copy") ~= fs.getSize(file[2]) then
  75.         fs.delete(file[2])
  76.         fs.copy(file[2] .. "Copy", file[2])
  77.         fs.delete(file[2] .. "Copy")
  78.         term.setTextColor(colors.yellow)
  79.         print(file[4])
  80.         term.setTextColor(colors.white)
  81.         if file[2] == "startup" then
  82.             sleep(5)
  83.             os.reboot()
  84.         end
  85.     else
  86.         fs.delete(file[2] .. "Copy")
  87.         term.setTextColor(colors.green)
  88.         print(file[5])
  89.         term.setTextColor(colors.white)
  90.     end
  91. end
  92.  
  93. -- Programmstart
  94. fileCheck(startUp)
  95. fileCheck(reactorProgram)
  96. --fileCheck(programConfig)
  97.  
  98. peripheral = peripheralCheck()
  99. if peripheral then
  100.     if peripheral == "BiggerReactors-Reactor" then
  101.         fileCheck(functions_BiggerReactor)
  102.         print("Bigger Reactor API erkannt")
  103.         sleep(2)
  104.     elseif peripheral == "BigReactors-Reactor" then
  105.         fileCheck(functions_BigReactor)
  106.         print("Big Reactor API erkannt")
  107.         sleep(2)
  108.     elseif peripheral == "BiggerReactors-Turbine" then
  109.         fileCheck(functions_BiggerReactors_Turbine)
  110.         print("Bigger Reactor Turbinen API erkannt")
  111.         sleep(2)
  112.     elseif peripheral == "BigReactors-Turbine" then
  113.         fileCheck(functions_BigReactors_Turbine)
  114.         print("Big Reactor Turbinen API erkannt")
  115.         sleep(2)
  116.     else
  117.         print("Warnung: Unbekannte Reaktor/Turbinen API erkannt. Bitte Mod Author kontaktieren!!!")
  118.     end
  119. else
  120.     print("Weder Reaktor noch Turbine erkannt. Bitte das Netzwerk überprüfen")
  121. end
  122.  
  123. fileCheck(readMeVariables)
  124. sleep(5)
  125. shell.run("Reaktoranzeige")
  126. -- Copyright PlatinKinggg
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement