From 5e1c3a5a0a7d442d6d1eacb71e8bcf55a5c91fe0 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Tue, 7 Feb 2023 00:52:30 +0800 Subject: [PATCH 1/2] support code, code2 & alias on image lookup --- forge-core/src/main/java/forge/ImageKeys.java | 58 +++++++++++-------- 1 file changed, 35 insertions(+), 23 deletions(-) diff --git a/forge-core/src/main/java/forge/ImageKeys.java b/forge-core/src/main/java/forge/ImageKeys.java index fd322a51b1c..4604f354a36 100644 --- a/forge-core/src/main/java/forge/ImageKeys.java +++ b/forge-core/src/main/java/forge/ImageKeys.java @@ -40,7 +40,7 @@ public final class ImageKeys { private static Map editionImageLookup = new HashMap<>(); - private static Map editionAlias = new HashMap<>(); + private static Map> editionAlias = new HashMap<>(); private static Set toFind = new HashSet<>(); private static boolean isLibGDXPort = false; @@ -192,15 +192,17 @@ 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) + "/")); - if (file != null) { - cachedCards.put(filename, file); - return file; - } - file = findFile(dir, TextUtil.fastReplace(fullborderFile, setCode + "/", editionAlias.get(setCode) + "/")); - if (file != null) { - cachedCards.put(filename, file); - return file; + 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 + "/", alias + "/")); + if (file != null) { + cachedCards.put(filename, file); + return file; + } } } } @@ -288,15 +290,17 @@ 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) + "/")); - if (file != null) { - cachedCards.put(filename, file); - return file; - } - file = findFile(dir, TextUtil.fastReplace(newFilename2, setCode + "/", editionAlias.get(setCode) + "/")); - if (file != null) { - cachedCards.put(filename, file); - return file; + 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 + "/", alias + "/")); + if (file != null) { + cachedCards.put(filename, file); + return file; + } } } } @@ -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(); - if (!alias.equalsIgnoreCase(setFolder)) - editionAlias.put(setFolder, alias); + Set aliasSet = new HashSet<>(); + if (alias != null) { + if (!alias.equalsIgnoreCase(setFolder)) + 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); From 1dbf2d7fc121c200ad308059212e3d81e404ddc5 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Tue, 7 Feb 2023 01:08:01 +0800 Subject: [PATCH 2/2] update --- forge-core/src/main/java/forge/ImageKeys.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-core/src/main/java/forge/ImageKeys.java b/forge-core/src/main/java/forge/ImageKeys.java index 4604f354a36..c0285c51b15 100644 --- a/forge-core/src/main/java/forge/ImageKeys.java +++ b/forge-core/src/main/java/forge/ImageKeys.java @@ -415,9 +415,9 @@ public final class ImageKeys { if (code != null) { if (!code.equalsIgnoreCase(setFolder)) aliasSet.add(code); - if (!aliasSet.isEmpty()) - editionAlias.put(setFolder, aliasSet); } + if (!aliasSet.isEmpty()) + editionAlias.put(setFolder, aliasSet); } editionHasImage = FileUtil.isDirectoryWithFiles(CACHE_CARD_PICS_DIR + setFolder); editionImageLookup.put(pc.getEdition(), editionHasImage);