Merge pull request #2413 from kevlahnota/newmaster2

support code, code2 & alias on image lookup
This commit is contained in:
Anthony Calosa
2023-02-07 01:42:17 +08:00
committed by GitHub

View File

@@ -40,7 +40,7 @@ public final class ImageKeys {
private static Map<String, Boolean> editionImageLookup = new HashMap<>();
private static Map<String, String> editionAlias = new HashMap<>();
private static Map<String, Set<String>> editionAlias = new HashMap<>();
private static Set<String> toFind = new HashSet<>();
private static boolean isLibGDXPort = false;
@@ -192,18 +192,20 @@ public final class ImageKeys {
}
String setCode = filename.contains("/") ? filename.substring(0, filename.indexOf("/")) : "";
if (!setCode.isEmpty() && editionAlias.containsKey(setCode)) {
file = findFile(dir, TextUtil.fastReplace(filename, setCode + "/", editionAlias.get(setCode) + "/"));
for (String alias : editionAlias.get(setCode)) {
file = findFile(dir, TextUtil.fastReplace(filename, setCode + "/", alias + "/"));
if (file != null) {
cachedCards.put(filename, file);
return file;
}
file = findFile(dir, TextUtil.fastReplace(fullborderFile, setCode + "/", editionAlias.get(setCode) + "/"));
file = findFile(dir, TextUtil.fastReplace(fullborderFile, setCode + "/", alias + "/"));
if (file != null) {
cachedCards.put(filename, file);
return file;
}
}
}
}
//if an image, like phenomenon or planes is missing .full in their filenames but you have an existing images that have .full/.fullborder
if (!filename.contains(".full")) {
file = findFile(dir, TextUtil.addSuffix(filename,".full"));
@@ -288,12 +290,13 @@ public final class ImageKeys {
}
String setCode = filename.substring(0, filename.indexOf("/"));
if (!setCode.isEmpty() && editionAlias.containsKey(setCode)) {
file = findFile(dir, TextUtil.fastReplace(newFilename, setCode + "/", editionAlias.get(setCode) + "/"));
for (String alias : editionAlias.get(setCode)) {
file = findFile(dir, TextUtil.fastReplace(newFilename, setCode + "/", alias + "/"));
if (file != null) {
cachedCards.put(filename, file);
return file;
}
file = findFile(dir, TextUtil.fastReplace(newFilename2, setCode + "/", editionAlias.get(setCode) + "/"));
file = findFile(dir, TextUtil.fastReplace(newFilename2, setCode + "/", alias + "/"));
if (file != null) {
cachedCards.put(filename, file);
return file;
@@ -302,6 +305,7 @@ public final class ImageKeys {
}
}
}
}
// System.out.println("File not found, no image created: " + key);
//add missing cards - disable for desktop version for compatibility reasons with autodownloader
@@ -402,10 +406,18 @@ public final class ImageKeys {
CardEdition ed = StaticData.instance().getEditions().get(setFolder);
if (ed != null && !editionAlias.containsKey(setFolder)) {
String alias = ed.getAlias();
if (alias == null)
alias = ed.getCode();
Set aliasSet = new HashSet<>();
if (alias != null) {
if (!alias.equalsIgnoreCase(setFolder))
editionAlias.put(setFolder, alias);
aliasSet.add(alias);
}
String code = ed.getCode();
if (code != null) {
if (!code.equalsIgnoreCase(setFolder))
aliasSet.add(code);
}
if (!aliasSet.isEmpty())
editionAlias.put(setFolder, aliasSet);
}
editionHasImage = FileUtil.isDirectoryWithFiles(CACHE_CARD_PICS_DIR + setFolder);
editionImageLookup.put(pc.getEdition(), editionHasImage);