package org.pixelgaffer.turnierserver.codr.utilities; import java.io.File; import org.pixelgaffer.turnierserver.codr.AiBase; import org.pixelgaffer.turnierserver.codr.AiBase.AiMode; import org.pixelgaffer.turnierserver.codr.AiExtern; import org.pixelgaffer.turnierserver.codr.GameSaved; import org.pixelgaffer.turnierserver.codr.MainApp; import org.pixelgaffer.turnierserver.codr.Version; /** * Sammelt alle Pfade zu Dateien, die außerhalb von Codr verwendet werden. * * @author Philip */ public class Paths { /** * wird für den Editor gebraucht. */ public static String syntaxFolder() { return "Syntax"; } /** * Hier wird eine neue Version von Codr abgespeichert, falls sie heruntergeladen wird. */ public static String newCodrVersion() { return "CodrNewVersion.jar"; } /** * Hier werden alle Einstellungen gespeichert, die im Main-Fenster vorgenommen werden. */ public static String settings() { return "settings.txt"; } /** * der Ordner mit den Downloads. */ public static String downloadFolder() { return "Downloads"; } /** * der Cookie für die Anmeldung */ public static String sessionFile() { return "session.conf"; } /** * eine Liste aller verfügbarer Programmiersprachen */ public static String langsFile() { return downloadFolder() + "/langs.prop"; } /** * eine Liste aller verfügbarer Spieltypen */ public static String gameTypesFile() { return downloadFolder() + "/gametypes.prop"; } /** * hier werden die Spieltypen gespeichert */ public static String downloadGameType(String game) { return downloadFolder() + "/" + game; } /** * hier werden die Spieltypen gespeichert */ public static String gameLogic(String game) { return downloadGameType(game) + "/gamelogic.jar"; } /** * hier werden die Bibliotheken gespeichert */ public static String downloadLibraries() { return downloadFolder() + "/Libraries"; } /** * gibt den ordner der bibliothek zurück. <code>name</code> ist name/version. */ public static String library(String language, String name) { return downloadLibraries() + "/" + language + "/" + name; } /** * Gibt den Pfad zum SimplePlayer-Ordner zurück */ public static String simplePlayerFolder(String game) { return downloadGameType(game) + "/SimplePlayer"; } public static String simplePlayer(String game, String language) { return downloadGameType(game) + "/SimplePlayer/SimplePlayer" + language + "/v0"; } public static String ailibrary(String game, String language) { return downloadGameType(game) + "/ailib/" + language; } /** * Gibt den Pfad zum KI-Ordner zurück */ public static String aiFolder() { return "AIs/Intern"; } /** * hier werden die Einträge zu externen KIs gespeichert */ public static String aiExternFolder() { return "AIs/Extern"; } /** * Gibt den Pfad zum Spiele-Ordner zurück */ public static String gameFolder() { return "Games"; } /** * Gibt den Pfad zum Ordner eines bestimmten Spiels zurück */ public static String game(GameSaved game) { return gameFolder() + "/" + game.offlineId; } /** * Gibt den Pfad zum Ordner eines bestimmten Spiels zurück */ public static String game(int id) { return gameFolder() + "/" + id; } /** * Gibt den Pfad zu den Properties eines bestimmten Spiels zurück */ public static String gameProperties(GameSaved game) { return game(game) + "/gameProperties.txt"; } /** * Gibt den Pfad zu dem Output der GameLogic für das Spiel zurück. */ public static String gameRenderData(GameSaved game) { return game(game) + "/renderData.txt"; } /** * Gibt den Pfad zum Ordner eines bestimmten Spielers zurück */ public static String ai(AiBase ai) { if (ai.mode == AiMode.simplePlayer) { return simplePlayerFolder(MainApp.actualGameType.get()) + "/" + ai.title; } else if (ai.mode == AiMode.extern) { return aiExternFolder() + "/" + ai.title; } else { return aiFolder() + "/" + ai.title; } } /** * Gibt den Pfad zu den Properties eines Spielers zurück */ public static String aiProperties(AiBase ai) { return ai(ai) + "/aiProperties.txt"; } /** * Gibt den Pfad zum Bild eines Spielers zurück */ public static String aiPicture(AiBase ai) { if (new File(ai(ai) + "/picture.png").exists()) return ai(ai) + "/picture.png"; else if (new File(ai(ai) + "/picture.jpg").exists()) return ai(ai) + "/picture.jpg"; else if (new File(ai(ai) + "/picture.jpeg").exists()) return ai(ai) + "/picture.jpeg"; else if (new File(ai(ai) + "/picture.gif").exists()) return ai(ai) + "/picture.gif"; else if (new File(ai(ai) + "/picture.bmp").exists()) return ai(ai) + "/picture.bmp"; else return null; } /** * Gibt den Pfad zu einer bestimmten Version zurück */ public static String version(Version version) { if (version.ai.mode == AiMode.extern) return ((AiExtern) version.ai).path; else return ai(version.ai) + "/v" + version.number; } /** * Gibt den Pfad zu einer bestimmten Version zurück */ public static String version(AiBase ai, int number) { if (ai.mode == AiMode.extern) return ((AiExtern) ai).path; else return ai(ai) + "/v" + number; } /** * Gibt den Pfad zu den Properties einer Version zurück */ public static String versionProperties(Version version) { if (version.ai.mode == AiMode.extern) return ai(version.ai) + "/versionProperties.txt"; else return version(version) + "/versionProperties.txt"; } /** * der Pfad zu dem Source-Ordner einer Version */ public static String versionSrc(Version version) { if (version.ai.mode == AiMode.extern) return version(version); else return version(version) + "/src"; } /** * der Pfad zu den Settings.prop einer Version */ public static String versionSettingsProp(Version version) { return versionSrc(version) + "/settings.prop"; } /** * pfad zu den Binaries einer Version */ public static String versionBin(Version version) { if (version.ai.mode == AiMode.extern) return ai(version.ai) + "/bin"; else return version(version) + "/bin"; } }