From 9dd5d9282dcf9dda08104d78261fbc53cdc9e162 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Mon, 11 Jul 2022 10:53:14 +0800 Subject: [PATCH] move skin and art related objects to Assets --- forge-gui-mobile/src/forge/assets/Assets.java | 13 + forge-gui-mobile/src/forge/assets/FSkin.java | 87 +++--- .../src/forge/assets/TextRenderer.java | 113 ++++---- .../src/forge/card/CardFaceSymbols.java | 250 +++++++++--------- .../src/forge/card/CardRenderer.java | 35 ++- .../forge/screens/match/MatchController.java | 39 ++- 6 files changed, 260 insertions(+), 277 deletions(-) diff --git a/forge-gui-mobile/src/forge/assets/Assets.java b/forge-gui-mobile/src/forge/assets/Assets.java index b6455900c11..b439d7cc007 100644 --- a/forge-gui-mobile/src/forge/assets/Assets.java +++ b/forge-gui-mobile/src/forge/assets/Assets.java @@ -5,16 +5,29 @@ import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.assets.loaders.resolvers.AbsoluteFileHandleResolver; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.scenes.scene2d.ui.Skin; import com.badlogic.gdx.utils.Disposable; import com.badlogic.gdx.utils.ObjectMap; import forge.gui.GuiBase; +import forge.localinstance.skin.FSkinProp; import java.util.HashMap; public class Assets implements Disposable { public AssetManager manager = new AssetManager(new AbsoluteFileHandleResolver()); public HashMap fonts = new HashMap<>(); + public HashMap cardArtCache = new HashMap<>(1024); + public HashMap avatarImages = new HashMap<>(); + public HashMap MANA_IMAGES = new HashMap<>(128); + public HashMap symbolLookup = new HashMap<>(64); + public HashMap images = new HashMap<>(512); + public HashMap avatars = new HashMap<>(150); + public HashMap sleeves = new HashMap<>(64); + public HashMap cracks = new HashMap<>(16); + public HashMap borders = new HashMap<>(); + public HashMap deckbox = new HashMap<>(); + public HashMap cursor = new HashMap<>(); public ObjectMap counterFonts = new ObjectMap<>(); public ObjectMap generatedCards = new ObjectMap<>(512); public ObjectMap fallback_skins = new ObjectMap<>(); diff --git a/forge-gui-mobile/src/forge/assets/FSkin.java b/forge-gui-mobile/src/forge/assets/FSkin.java index 08e4d3298aa..3660243cdff 100644 --- a/forge-gui-mobile/src/forge/assets/FSkin.java +++ b/forge-gui-mobile/src/forge/assets/FSkin.java @@ -25,18 +25,9 @@ import forge.screens.TransitionScreen; import forge.toolbox.FProgressBar; import forge.util.WordUtil; -import java.util.HashMap; import java.util.Map; public class FSkin { - private static final Map images = new HashMap<>(512); - private static final Map avatars = new HashMap<>(150); - private static final Map sleeves = new HashMap<>(64); - private static final Map cracks = new HashMap<>(16); - private static final Map borders = new HashMap<>(); - private static final Map deckbox = new HashMap<>(); - private static final Map cursor = new HashMap<>(); - private static Array allSkins; private static FileHandle preferredDir; private static String preferredName; @@ -53,27 +44,19 @@ public class FSkin { prefs.setPref(FPref.UI_SKIN, skinName); prefs.save(); - Forge.setTransitionScreen(new TransitionScreen(new Runnable() { - @Override - public void run() { - FThreads.invokeInBackgroundThread(() -> FThreads.invokeInEdtLater(() -> { - final LoadingOverlay loader = new LoadingOverlay(Forge.getLocalizer().getMessageorUseDefault("lblRestartInFewSeconds", "Forge will restart after a few seconds..."), true); - loader.show(); - FThreads.invokeInBackgroundThread(() -> { - FSkinFont.deleteCachedFiles(); //delete cached font files so font can be update for new skin - FThreads.delayInEDT(2000, new Runnable() { - @Override - public void run() { - Forge.clearTransitionScreen(); - FThreads.invokeInEdtLater(() -> { - Forge.restart(true); - }); - } - }); + Forge.setTransitionScreen(new TransitionScreen(() -> FThreads.invokeInBackgroundThread(() -> FThreads.invokeInEdtLater(() -> { + final LoadingOverlay loader = new LoadingOverlay(Forge.getLocalizer().getMessageorUseDefault("lblRestartInFewSeconds", "Forge will restart after a few seconds..."), true); + loader.show(); + FThreads.invokeInBackgroundThread(() -> { + FSkinFont.deleteCachedFiles(); //delete cached font files so font can be update for new skin + FThreads.delayInEDT(2000, () -> { + Forge.clearTransitionScreen(); + FThreads.invokeInEdtLater(() -> { + Forge.restart(true); }); - })); - } - }, null, false, true)); + }); + }); + })), null, false, true)); } public static void loadLight(String skinName, final SplashScreen splashScreen,FileHandle prefDir) { preferredDir = prefDir; @@ -226,8 +209,8 @@ public class FSkin { if (FSkin.preferredName.isEmpty()) { FSkin.loadLight("default", splashScreen); } } - avatars.clear(); - sleeves.clear(); + Forge.getAssets().avatars.clear(); + Forge.getAssets().sleeves.clear(); TextureLoader.TextureParameter parameter = new TextureLoader.TextureParameter(); if (Forge.isTextureFilteringEnabled()) { @@ -354,7 +337,7 @@ public class FSkin { if (i == 0 && j == 0) { continue; } pxTest = new Color(pxPreferredAvatars.getPixel(i + 50, j + 50)); if (pxTest.a == 0) { continue; } - FSkin.avatars.put(counter++, new TextureRegion(manager.get(f5.path(), Texture.class), i, j, 100, 100)); + Forge.getAssets().avatars.put(counter++, new TextureRegion(manager.get(f5.path(), Texture.class), i, j, 100, 100)); } } pxPreferredAvatars.dispose(); @@ -369,7 +352,7 @@ public class FSkin { if (i == 0 && j == 0) { continue; } pxTest = new Color(pxDefaultAvatars.getPixel(i + 50, j + 50)); if (pxTest.a == 0) { continue; } - FSkin.avatars.put(counter++, new TextureRegion(manager.get(f4.path(), Texture.class), i, j, 100, 100)); + Forge.getAssets().avatars.put(counter++, new TextureRegion(manager.get(f4.path(), Texture.class), i, j, 100, 100)); } } } @@ -381,7 +364,7 @@ public class FSkin { for (int i = 0; i < sw; i += 360) { pxTest = new Color(pxDefaultSleeves.getPixel(i + 180, j + 250)); if (pxTest.a == 0) { continue; } - FSkin.sleeves.put(scount++, new TextureRegion(manager.get(f8.path(), Texture.class), i, j, 360, 500)); + Forge.getAssets().sleeves.put(scount++, new TextureRegion(manager.get(f8.path(), Texture.class), i, j, 360, 500)); } } @@ -397,7 +380,7 @@ public class FSkin { for (int i = 0; i < sw2; i += 360) { pxTest = new Color(pxDefaultSleeves.getPixel(i + 180, j + 250)); if (pxTest.a == 0) { continue; } - FSkin.sleeves.put(scount++, new TextureRegion(manager.get(f9.path(), Texture.class), i, j, 360, 500)); + Forge.getAssets().sleeves.put(scount++, new TextureRegion(manager.get(f9.path(), Texture.class), i, j, 360, 500)); } } //cracks @@ -408,32 +391,32 @@ public class FSkin { int x = j * 200; for(int i = 0; i < 4; i++) { int y = i * 279; - FSkin.cracks.put(crackCount++, new TextureRegion(manager.get(f17.path(), Texture.class), x, y, 200, 279)); + Forge.getAssets().cracks.put(crackCount++, new TextureRegion(manager.get(f17.path(), Texture.class), x, y, 200, 279)); } } //borders manager.load(f10.path(), Texture.class); manager.finishLoadingAsset(f10.path()); - FSkin.borders.put(0, new TextureRegion(manager.get(f10.path(), Texture.class), 2, 2, 672, 936)); - FSkin.borders.put(1, new TextureRegion(manager.get(f10.path(), Texture.class), 676, 2, 672, 936)); + Forge.getAssets().borders.put(0, new TextureRegion(manager.get(f10.path(), Texture.class), 2, 2, 672, 936)); + Forge.getAssets().borders.put(1, new TextureRegion(manager.get(f10.path(), Texture.class), 676, 2, 672, 936)); //deckboxes manager.load(f13.path(), Texture.class, parameter); manager.finishLoadingAsset(f13.path()); //gold bg - FSkin.deckbox.put(0, new TextureRegion(manager.get(f13.path(), Texture.class), 2, 2, 488, 680)); + Forge.getAssets().deckbox.put(0, new TextureRegion(manager.get(f13.path(), Texture.class), 2, 2, 488, 680)); //deck box for card art - FSkin.deckbox.put(1, new TextureRegion(manager.get(f13.path(), Texture.class), 492, 2, 488, 680)); + Forge.getAssets().deckbox.put(1, new TextureRegion(manager.get(f13.path(), Texture.class), 492, 2, 488, 680)); //generic deck box - FSkin.deckbox.put(2, new TextureRegion(manager.get(f13.path(), Texture.class), 982, 2, 488, 680)); + Forge.getAssets().deckbox.put(2, new TextureRegion(manager.get(f13.path(), Texture.class), 982, 2, 488, 680)); //cursor manager.load(f19.path(), Texture.class); manager.finishLoadingAsset(f19.path()); - FSkin.cursor.put(0, new TextureRegion(manager.get(f19.path(), Texture.class), 0, 0, 32, 32)); //default - FSkin.cursor.put(1, new TextureRegion(manager.get(f19.path(), Texture.class), 32, 0, 32, 32)); //magnify on - FSkin.cursor.put(2, new TextureRegion(manager.get(f19.path(), Texture.class), 64, 0, 32, 32)); // magnify off + Forge.getAssets().cursor.put(0, new TextureRegion(manager.get(f19.path(), Texture.class), 0, 0, 32, 32)); //default + Forge.getAssets().cursor.put(1, new TextureRegion(manager.get(f19.path(), Texture.class), 32, 0, 32, 32)); //magnify on + Forge.getAssets().cursor.put(2, new TextureRegion(manager.get(f19.path(), Texture.class), 64, 0, 32, 32)); // magnify off - Forge.setCursor(cursor.get(0), "0"); + Forge.setCursor(Forge.getAssets().cursor.get(0), "0"); preferredIcons.dispose(); pxDefaultAvatars.dispose(); @@ -523,31 +506,31 @@ public class FSkin { } public static Map getImages() { - return images; + return Forge.getAssets().images; } public static Map getAvatars() { - return avatars; + return Forge.getAssets().avatars; } public static Map getSleeves() { - return sleeves; + return Forge.getAssets().sleeves; } public static Map getCracks() { - return cracks; + return Forge.getAssets().cracks; } public static Map getBorders() { - return borders; + return Forge.getAssets().borders; } public static Map getDeckbox() { - return deckbox; + return Forge.getAssets().deckbox; } public static Map getCursor() { - return cursor; + return Forge.getAssets().cursor; } public static boolean isLoaded() { return loaded; } diff --git a/forge-gui-mobile/src/forge/assets/TextRenderer.java b/forge-gui-mobile/src/forge/assets/TextRenderer.java index 231e16cfc66..f42c6f9a1b4 100644 --- a/forge-gui-mobile/src/forge/assets/TextRenderer.java +++ b/forge-gui-mobile/src/forge/assets/TextRenderer.java @@ -2,10 +2,8 @@ package forge.assets; import java.text.BreakIterator; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Locale; -import java.util.Map; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Align; @@ -20,64 +18,63 @@ import forge.util.TextBounds; //Encodes text for drawing with symbols and reminder text public class TextRenderer { - private static final Map symbolLookup = new HashMap<>(64); static { - symbolLookup.put("C", FSkinImage.MANA_COLORLESS); - symbolLookup.put("W", FSkinImage.MANA_W); - symbolLookup.put("U", FSkinImage.MANA_U); - symbolLookup.put("B", FSkinImage.MANA_B); - symbolLookup.put("R", FSkinImage.MANA_R); - symbolLookup.put("G", FSkinImage.MANA_G); - symbolLookup.put("W/U", FSkinImage.MANA_HYBRID_WU); - symbolLookup.put("U/B", FSkinImage.MANA_HYBRID_UB); - symbolLookup.put("B/R", FSkinImage.MANA_HYBRID_BR); - symbolLookup.put("R/G", FSkinImage.MANA_HYBRID_RG); - symbolLookup.put("G/W", FSkinImage.MANA_HYBRID_GW); - symbolLookup.put("W/B", FSkinImage.MANA_HYBRID_WB); - symbolLookup.put("U/R", FSkinImage.MANA_HYBRID_UR); - symbolLookup.put("B/G", FSkinImage.MANA_HYBRID_BG); - symbolLookup.put("R/W", FSkinImage.MANA_HYBRID_RW); - symbolLookup.put("G/U", FSkinImage.MANA_HYBRID_GU); - symbolLookup.put("2/W", FSkinImage.MANA_2W); - symbolLookup.put("2/U", FSkinImage.MANA_2U); - symbolLookup.put("2/B", FSkinImage.MANA_2B); - symbolLookup.put("2/R", FSkinImage.MANA_2R); - symbolLookup.put("2/G", FSkinImage.MANA_2G); - symbolLookup.put("P", FSkinImage.MANA_PHRYX); - symbolLookup.put("P/W", FSkinImage.MANA_PHRYX_W); - symbolLookup.put("P/U", FSkinImage.MANA_PHRYX_U); - symbolLookup.put("P/B", FSkinImage.MANA_PHRYX_B); - symbolLookup.put("P/R", FSkinImage.MANA_PHRYX_R); - symbolLookup.put("P/G", FSkinImage.MANA_PHRYX_G); - symbolLookup.put("W/P", FSkinImage.MANA_PHRYX_W); - symbolLookup.put("U/P", FSkinImage.MANA_PHRYX_U); - symbolLookup.put("B/P", FSkinImage.MANA_PHRYX_B); - symbolLookup.put("R/P", FSkinImage.MANA_PHRYX_R); - symbolLookup.put("G/P", FSkinImage.MANA_PHRYX_G); - symbolLookup.put("P/B/G", FSkinImage.MANA_PHRYX_BG); - symbolLookup.put("P/B/R", FSkinImage.MANA_PHRYX_BR); - symbolLookup.put("P/G/U", FSkinImage.MANA_PHRYX_GU); - symbolLookup.put("P/G/W", FSkinImage.MANA_PHRYX_GW); - symbolLookup.put("P/R/G", FSkinImage.MANA_PHRYX_RG); - symbolLookup.put("P/R/W", FSkinImage.MANA_PHRYX_RW); - symbolLookup.put("P/U/B", FSkinImage.MANA_PHRYX_UB); - symbolLookup.put("P/U/R", FSkinImage.MANA_PHRYX_UR); - symbolLookup.put("P/W/B", FSkinImage.MANA_PHRYX_WB); - symbolLookup.put("P/W/U", FSkinImage.MANA_PHRYX_WU); + Forge.getAssets().symbolLookup.put("C", FSkinImage.MANA_COLORLESS); + Forge.getAssets().symbolLookup.put("W", FSkinImage.MANA_W); + Forge.getAssets().symbolLookup.put("U", FSkinImage.MANA_U); + Forge.getAssets().symbolLookup.put("B", FSkinImage.MANA_B); + Forge.getAssets().symbolLookup.put("R", FSkinImage.MANA_R); + Forge.getAssets().symbolLookup.put("G", FSkinImage.MANA_G); + Forge.getAssets().symbolLookup.put("W/U", FSkinImage.MANA_HYBRID_WU); + Forge.getAssets().symbolLookup.put("U/B", FSkinImage.MANA_HYBRID_UB); + Forge.getAssets().symbolLookup.put("B/R", FSkinImage.MANA_HYBRID_BR); + Forge.getAssets().symbolLookup.put("R/G", FSkinImage.MANA_HYBRID_RG); + Forge.getAssets().symbolLookup.put("G/W", FSkinImage.MANA_HYBRID_GW); + Forge.getAssets().symbolLookup.put("W/B", FSkinImage.MANA_HYBRID_WB); + Forge.getAssets().symbolLookup.put("U/R", FSkinImage.MANA_HYBRID_UR); + Forge.getAssets().symbolLookup.put("B/G", FSkinImage.MANA_HYBRID_BG); + Forge.getAssets().symbolLookup.put("R/W", FSkinImage.MANA_HYBRID_RW); + Forge.getAssets().symbolLookup.put("G/U", FSkinImage.MANA_HYBRID_GU); + Forge.getAssets().symbolLookup.put("2/W", FSkinImage.MANA_2W); + Forge.getAssets().symbolLookup.put("2/U", FSkinImage.MANA_2U); + Forge.getAssets().symbolLookup.put("2/B", FSkinImage.MANA_2B); + Forge.getAssets().symbolLookup.put("2/R", FSkinImage.MANA_2R); + Forge.getAssets().symbolLookup.put("2/G", FSkinImage.MANA_2G); + Forge.getAssets().symbolLookup.put("P", FSkinImage.MANA_PHRYX); + Forge.getAssets().symbolLookup.put("P/W", FSkinImage.MANA_PHRYX_W); + Forge.getAssets().symbolLookup.put("P/U", FSkinImage.MANA_PHRYX_U); + Forge.getAssets().symbolLookup.put("P/B", FSkinImage.MANA_PHRYX_B); + Forge.getAssets().symbolLookup.put("P/R", FSkinImage.MANA_PHRYX_R); + Forge.getAssets().symbolLookup.put("P/G", FSkinImage.MANA_PHRYX_G); + Forge.getAssets().symbolLookup.put("W/P", FSkinImage.MANA_PHRYX_W); + Forge.getAssets().symbolLookup.put("U/P", FSkinImage.MANA_PHRYX_U); + Forge.getAssets().symbolLookup.put("B/P", FSkinImage.MANA_PHRYX_B); + Forge.getAssets().symbolLookup.put("R/P", FSkinImage.MANA_PHRYX_R); + Forge.getAssets().symbolLookup.put("G/P", FSkinImage.MANA_PHRYX_G); + Forge.getAssets().symbolLookup.put("P/B/G", FSkinImage.MANA_PHRYX_BG); + Forge.getAssets().symbolLookup.put("P/B/R", FSkinImage.MANA_PHRYX_BR); + Forge.getAssets().symbolLookup.put("P/G/U", FSkinImage.MANA_PHRYX_GU); + Forge.getAssets().symbolLookup.put("P/G/W", FSkinImage.MANA_PHRYX_GW); + Forge.getAssets().symbolLookup.put("P/R/G", FSkinImage.MANA_PHRYX_RG); + Forge.getAssets().symbolLookup.put("P/R/W", FSkinImage.MANA_PHRYX_RW); + Forge.getAssets().symbolLookup.put("P/U/B", FSkinImage.MANA_PHRYX_UB); + Forge.getAssets().symbolLookup.put("P/U/R", FSkinImage.MANA_PHRYX_UR); + Forge.getAssets().symbolLookup.put("P/W/B", FSkinImage.MANA_PHRYX_WB); + Forge.getAssets().symbolLookup.put("P/W/U", FSkinImage.MANA_PHRYX_WU); for (int i = 0; i <= 20; i++) { - symbolLookup.put(String.valueOf(i), FSkinImage.valueOf("MANA_" + i)); + Forge.getAssets().symbolLookup.put(String.valueOf(i), FSkinImage.valueOf("MANA_" + i)); } - symbolLookup.put("X", FSkinImage.MANA_X); - symbolLookup.put("Y", FSkinImage.MANA_Y); - symbolLookup.put("Z", FSkinImage.MANA_Z); - symbolLookup.put("CHAOS", FSkinImage.CHAOS); - symbolLookup.put("Q", FSkinImage.UNTAP); - symbolLookup.put("S", FSkinImage.MANA_SNOW); - symbolLookup.put("T", FSkinImage.TAP); - symbolLookup.put("E", FSkinImage.ENERGY); - symbolLookup.put("AE", FSkinImage.AETHER_SHARD); - symbolLookup.put("PW", FSkinImage.PW_BADGE_COMMON); - symbolLookup.put("CR", FSkinImage.QUEST_COINSTACK); + Forge.getAssets().symbolLookup.put("X", FSkinImage.MANA_X); + Forge.getAssets().symbolLookup.put("Y", FSkinImage.MANA_Y); + Forge.getAssets().symbolLookup.put("Z", FSkinImage.MANA_Z); + Forge.getAssets().symbolLookup.put("CHAOS", FSkinImage.CHAOS); + Forge.getAssets().symbolLookup.put("Q", FSkinImage.UNTAP); + Forge.getAssets().symbolLookup.put("S", FSkinImage.MANA_SNOW); + Forge.getAssets().symbolLookup.put("T", FSkinImage.TAP); + Forge.getAssets().symbolLookup.put("E", FSkinImage.ENERGY); + Forge.getAssets().symbolLookup.put("AE", FSkinImage.AETHER_SHARD); + Forge.getAssets().symbolLookup.put("PW", FSkinImage.PW_BADGE_COMMON); + Forge.getAssets().symbolLookup.put("CR", FSkinImage.QUEST_COINSTACK); } public static String startColor(Color color) { @@ -192,7 +189,7 @@ public class TextRenderer { if (inSymbolCount > 0) { inSymbolCount--; if (text.length() > 0) { - FSkinImage symbol = symbolLookup.get(text.toString()); + FSkinImage symbol = Forge.getAssets().symbolLookup.get(text.toString()); if (symbol != null) { pieceWidth = lineHeight * CardFaceSymbols.FONT_SIZE_FACTOR; if (x + pieceWidth > width) { diff --git a/forge-gui-mobile/src/forge/card/CardFaceSymbols.java b/forge-gui-mobile/src/forge/card/CardFaceSymbols.java index 4c73a945404..bedbc659fc4 100644 --- a/forge-gui-mobile/src/forge/card/CardFaceSymbols.java +++ b/forge-gui-mobile/src/forge/card/CardFaceSymbols.java @@ -17,10 +17,9 @@ */ package forge.card; -import java.util.HashMap; -import java.util.Map; import java.util.StringTokenizer; +import forge.Forge; import forge.Graphics; import forge.assets.FSkinImage; import forge.card.mana.ManaCost; @@ -30,141 +29,140 @@ import forge.gui.error.BugReporter; public class CardFaceSymbols { public static final float FONT_SIZE_FACTOR = 0.85f; - private static final Map MANA_IMAGES = new HashMap<>(128); public static void loadImages() { for (int i = 0; i <= 20; i++) { - MANA_IMAGES.put(String.valueOf(i), FSkinImage.valueOf("MANA_" + i)); + Forge.getAssets().MANA_IMAGES.put(String.valueOf(i), FSkinImage.valueOf("MANA_" + i)); } - MANA_IMAGES.put("X", FSkinImage.MANA_X); - MANA_IMAGES.put("Y", FSkinImage.MANA_Y); - MANA_IMAGES.put("Z", FSkinImage.MANA_Z); + Forge.getAssets().MANA_IMAGES.put("X", FSkinImage.MANA_X); + Forge.getAssets().MANA_IMAGES.put("Y", FSkinImage.MANA_Y); + Forge.getAssets().MANA_IMAGES.put("Z", FSkinImage.MANA_Z); - MANA_IMAGES.put("C", FSkinImage.MANA_COLORLESS); - MANA_IMAGES.put("B", FSkinImage.MANA_B); - MANA_IMAGES.put("BG", FSkinImage.MANA_HYBRID_BG); - MANA_IMAGES.put("BR", FSkinImage.MANA_HYBRID_BR); - MANA_IMAGES.put("G", FSkinImage.MANA_G); - MANA_IMAGES.put("GU", FSkinImage.MANA_HYBRID_GU); - MANA_IMAGES.put("GW", FSkinImage.MANA_HYBRID_GW); - MANA_IMAGES.put("R", FSkinImage.MANA_R); - MANA_IMAGES.put("RG", FSkinImage.MANA_HYBRID_RG); - MANA_IMAGES.put("RW", FSkinImage.MANA_HYBRID_RW); - MANA_IMAGES.put("U", FSkinImage.MANA_U); - MANA_IMAGES.put("UB", FSkinImage.MANA_HYBRID_UB); - MANA_IMAGES.put("UR", FSkinImage.MANA_HYBRID_UR); - MANA_IMAGES.put("W", FSkinImage.MANA_W); - MANA_IMAGES.put("WB", FSkinImage.MANA_HYBRID_WB); - MANA_IMAGES.put("WU", FSkinImage.MANA_HYBRID_WU); - MANA_IMAGES.put("P", FSkinImage.MANA_PHRYX); - MANA_IMAGES.put("PW", FSkinImage.MANA_PHRYX_W); - MANA_IMAGES.put("PR", FSkinImage.MANA_PHRYX_R); - MANA_IMAGES.put("PU", FSkinImage.MANA_PHRYX_U); - MANA_IMAGES.put("PB", FSkinImage.MANA_PHRYX_B); - MANA_IMAGES.put("PG", FSkinImage.MANA_PHRYX_G); - MANA_IMAGES.put("PBG", FSkinImage.MANA_PHRYX_BG); - MANA_IMAGES.put("PBR", FSkinImage.MANA_PHRYX_BR); - MANA_IMAGES.put("PGU", FSkinImage.MANA_PHRYX_GU); - MANA_IMAGES.put("PGW", FSkinImage.MANA_PHRYX_GW); - MANA_IMAGES.put("PRG", FSkinImage.MANA_PHRYX_RG); - MANA_IMAGES.put("PRW", FSkinImage.MANA_PHRYX_RW); - MANA_IMAGES.put("PUB", FSkinImage.MANA_PHRYX_UB); - MANA_IMAGES.put("PUR", FSkinImage.MANA_PHRYX_UR); - MANA_IMAGES.put("PWB", FSkinImage.MANA_PHRYX_WB); - MANA_IMAGES.put("PWU", FSkinImage.MANA_PHRYX_WU); - MANA_IMAGES.put("2W", FSkinImage.MANA_2W); - MANA_IMAGES.put("2U", FSkinImage.MANA_2U); - MANA_IMAGES.put("2R", FSkinImage.MANA_2R); - MANA_IMAGES.put("2G", FSkinImage.MANA_2G); - MANA_IMAGES.put("2B", FSkinImage.MANA_2B); + Forge.getAssets().MANA_IMAGES.put("C", FSkinImage.MANA_COLORLESS); + Forge.getAssets().MANA_IMAGES.put("B", FSkinImage.MANA_B); + Forge.getAssets().MANA_IMAGES.put("BG", FSkinImage.MANA_HYBRID_BG); + Forge.getAssets().MANA_IMAGES.put("BR", FSkinImage.MANA_HYBRID_BR); + Forge.getAssets().MANA_IMAGES.put("G", FSkinImage.MANA_G); + Forge.getAssets().MANA_IMAGES.put("GU", FSkinImage.MANA_HYBRID_GU); + Forge.getAssets().MANA_IMAGES.put("GW", FSkinImage.MANA_HYBRID_GW); + Forge.getAssets().MANA_IMAGES.put("R", FSkinImage.MANA_R); + Forge.getAssets().MANA_IMAGES.put("RG", FSkinImage.MANA_HYBRID_RG); + Forge.getAssets().MANA_IMAGES.put("RW", FSkinImage.MANA_HYBRID_RW); + Forge.getAssets().MANA_IMAGES.put("U", FSkinImage.MANA_U); + Forge.getAssets().MANA_IMAGES.put("UB", FSkinImage.MANA_HYBRID_UB); + Forge.getAssets().MANA_IMAGES.put("UR", FSkinImage.MANA_HYBRID_UR); + Forge.getAssets().MANA_IMAGES.put("W", FSkinImage.MANA_W); + Forge.getAssets().MANA_IMAGES.put("WB", FSkinImage.MANA_HYBRID_WB); + Forge.getAssets().MANA_IMAGES.put("WU", FSkinImage.MANA_HYBRID_WU); + Forge.getAssets().MANA_IMAGES.put("P", FSkinImage.MANA_PHRYX); + Forge.getAssets().MANA_IMAGES.put("PW", FSkinImage.MANA_PHRYX_W); + Forge.getAssets().MANA_IMAGES.put("PR", FSkinImage.MANA_PHRYX_R); + Forge.getAssets().MANA_IMAGES.put("PU", FSkinImage.MANA_PHRYX_U); + Forge.getAssets().MANA_IMAGES.put("PB", FSkinImage.MANA_PHRYX_B); + Forge.getAssets().MANA_IMAGES.put("PG", FSkinImage.MANA_PHRYX_G); + Forge.getAssets().MANA_IMAGES.put("PBG", FSkinImage.MANA_PHRYX_BG); + Forge.getAssets().MANA_IMAGES.put("PBR", FSkinImage.MANA_PHRYX_BR); + Forge.getAssets().MANA_IMAGES.put("PGU", FSkinImage.MANA_PHRYX_GU); + Forge.getAssets().MANA_IMAGES.put("PGW", FSkinImage.MANA_PHRYX_GW); + Forge.getAssets().MANA_IMAGES.put("PRG", FSkinImage.MANA_PHRYX_RG); + Forge.getAssets().MANA_IMAGES.put("PRW", FSkinImage.MANA_PHRYX_RW); + Forge.getAssets().MANA_IMAGES.put("PUB", FSkinImage.MANA_PHRYX_UB); + Forge.getAssets().MANA_IMAGES.put("PUR", FSkinImage.MANA_PHRYX_UR); + Forge.getAssets().MANA_IMAGES.put("PWB", FSkinImage.MANA_PHRYX_WB); + Forge.getAssets().MANA_IMAGES.put("PWU", FSkinImage.MANA_PHRYX_WU); + Forge.getAssets().MANA_IMAGES.put("2W", FSkinImage.MANA_2W); + Forge.getAssets().MANA_IMAGES.put("2U", FSkinImage.MANA_2U); + Forge.getAssets().MANA_IMAGES.put("2R", FSkinImage.MANA_2R); + Forge.getAssets().MANA_IMAGES.put("2G", FSkinImage.MANA_2G); + Forge.getAssets().MANA_IMAGES.put("2B", FSkinImage.MANA_2B); - MANA_IMAGES.put("S", FSkinImage.MANA_SNOW); - MANA_IMAGES.put("T", FSkinImage.TAP); - MANA_IMAGES.put("E", FSkinImage.ENERGY); - MANA_IMAGES.put("slash", FSkinImage.SLASH); - MANA_IMAGES.put("attack", FSkinImage.ATTACK); - MANA_IMAGES.put("defend", FSkinImage.DEFEND); - MANA_IMAGES.put("summonsick", FSkinImage.SUMMONSICK); - MANA_IMAGES.put("phasing", FSkinImage.PHASING); - MANA_IMAGES.put("sacrifice", FSkinImage.COSTRESERVED); - MANA_IMAGES.put("counters1", FSkinImage.COUNTERS1); - MANA_IMAGES.put("counters2", FSkinImage.COUNTERS2); - MANA_IMAGES.put("counters3", FSkinImage.COUNTERS3); - MANA_IMAGES.put("countersMulti", FSkinImage.COUNTERS_MULTI); + Forge.getAssets().MANA_IMAGES.put("S", FSkinImage.MANA_SNOW); + Forge.getAssets().MANA_IMAGES.put("T", FSkinImage.TAP); + Forge.getAssets().MANA_IMAGES.put("E", FSkinImage.ENERGY); + Forge.getAssets().MANA_IMAGES.put("slash", FSkinImage.SLASH); + Forge.getAssets().MANA_IMAGES.put("attack", FSkinImage.ATTACK); + Forge.getAssets().MANA_IMAGES.put("defend", FSkinImage.DEFEND); + Forge.getAssets().MANA_IMAGES.put("summonsick", FSkinImage.SUMMONSICK); + Forge.getAssets().MANA_IMAGES.put("phasing", FSkinImage.PHASING); + Forge.getAssets().MANA_IMAGES.put("sacrifice", FSkinImage.COSTRESERVED); + Forge.getAssets().MANA_IMAGES.put("counters1", FSkinImage.COUNTERS1); + Forge.getAssets().MANA_IMAGES.put("counters2", FSkinImage.COUNTERS2); + Forge.getAssets().MANA_IMAGES.put("counters3", FSkinImage.COUNTERS3); + Forge.getAssets().MANA_IMAGES.put("countersMulti", FSkinImage.COUNTERS_MULTI); - MANA_IMAGES.put("foil01", FSkinImage.FOIL_01); - MANA_IMAGES.put("foil02", FSkinImage.FOIL_02); - MANA_IMAGES.put("foil03", FSkinImage.FOIL_03); - MANA_IMAGES.put("foil04", FSkinImage.FOIL_04); - MANA_IMAGES.put("foil05", FSkinImage.FOIL_05); - MANA_IMAGES.put("foil06", FSkinImage.FOIL_06); - MANA_IMAGES.put("foil07", FSkinImage.FOIL_07); - MANA_IMAGES.put("foil08", FSkinImage.FOIL_08); - MANA_IMAGES.put("foil09", FSkinImage.FOIL_09); - MANA_IMAGES.put("foil10", FSkinImage.FOIL_10); + Forge.getAssets().MANA_IMAGES.put("foil01", FSkinImage.FOIL_01); + Forge.getAssets().MANA_IMAGES.put("foil02", FSkinImage.FOIL_02); + Forge.getAssets().MANA_IMAGES.put("foil03", FSkinImage.FOIL_03); + Forge.getAssets().MANA_IMAGES.put("foil04", FSkinImage.FOIL_04); + Forge.getAssets().MANA_IMAGES.put("foil05", FSkinImage.FOIL_05); + Forge.getAssets().MANA_IMAGES.put("foil06", FSkinImage.FOIL_06); + Forge.getAssets().MANA_IMAGES.put("foil07", FSkinImage.FOIL_07); + Forge.getAssets().MANA_IMAGES.put("foil08", FSkinImage.FOIL_08); + Forge.getAssets().MANA_IMAGES.put("foil09", FSkinImage.FOIL_09); + Forge.getAssets().MANA_IMAGES.put("foil10", FSkinImage.FOIL_10); - MANA_IMAGES.put("foil11", FSkinImage.FOIL_11); - MANA_IMAGES.put("foil12", FSkinImage.FOIL_12); - MANA_IMAGES.put("foil13", FSkinImage.FOIL_13); - MANA_IMAGES.put("foil14", FSkinImage.FOIL_14); - MANA_IMAGES.put("foil15", FSkinImage.FOIL_15); - MANA_IMAGES.put("foil16", FSkinImage.FOIL_16); - MANA_IMAGES.put("foil17", FSkinImage.FOIL_17); - MANA_IMAGES.put("foil18", FSkinImage.FOIL_18); - MANA_IMAGES.put("foil19", FSkinImage.FOIL_19); - MANA_IMAGES.put("foil20", FSkinImage.FOIL_20); + Forge.getAssets().MANA_IMAGES.put("foil11", FSkinImage.FOIL_11); + Forge.getAssets().MANA_IMAGES.put("foil12", FSkinImage.FOIL_12); + Forge.getAssets().MANA_IMAGES.put("foil13", FSkinImage.FOIL_13); + Forge.getAssets().MANA_IMAGES.put("foil14", FSkinImage.FOIL_14); + Forge.getAssets().MANA_IMAGES.put("foil15", FSkinImage.FOIL_15); + Forge.getAssets().MANA_IMAGES.put("foil16", FSkinImage.FOIL_16); + Forge.getAssets().MANA_IMAGES.put("foil17", FSkinImage.FOIL_17); + Forge.getAssets().MANA_IMAGES.put("foil18", FSkinImage.FOIL_18); + Forge.getAssets().MANA_IMAGES.put("foil19", FSkinImage.FOIL_19); + Forge.getAssets().MANA_IMAGES.put("foil20", FSkinImage.FOIL_20); - MANA_IMAGES.put("commander", FSkinImage.IMG_ABILITY_COMMANDER); + Forge.getAssets().MANA_IMAGES.put("commander", FSkinImage.IMG_ABILITY_COMMANDER); - MANA_IMAGES.put("deathtouch", FSkinImage.IMG_ABILITY_DEATHTOUCH); - MANA_IMAGES.put("defender", FSkinImage.IMG_ABILITY_DEFENDER); - MANA_IMAGES.put("doublestrike", FSkinImage.IMG_ABILITY_DOUBLE_STRIKE); - MANA_IMAGES.put("firststrike", FSkinImage.IMG_ABILITY_FIRST_STRIKE); - MANA_IMAGES.put("fear", FSkinImage.IMG_ABILITY_FEAR); - MANA_IMAGES.put("flash", FSkinImage.IMG_ABILITY_FLASH); - MANA_IMAGES.put("flying", FSkinImage.IMG_ABILITY_FLYING); - MANA_IMAGES.put("haste", FSkinImage.IMG_ABILITY_HASTE); - MANA_IMAGES.put("hexproof", FSkinImage.IMG_ABILITY_HEXPROOF); - MANA_IMAGES.put("horsemanship", FSkinImage.IMG_ABILITY_HORSEMANSHIP); - MANA_IMAGES.put("indestructible", FSkinImage.IMG_ABILITY_INDESTRUCTIBLE); - MANA_IMAGES.put("intimidate", FSkinImage.IMG_ABILITY_INTIMIDATE); - MANA_IMAGES.put("landwalk", FSkinImage.IMG_ABILITY_LANDWALK); - MANA_IMAGES.put("lifelink", FSkinImage.IMG_ABILITY_LIFELINK); - MANA_IMAGES.put("menace", FSkinImage.IMG_ABILITY_MENACE); - MANA_IMAGES.put("reach", FSkinImage.IMG_ABILITY_REACH); - MANA_IMAGES.put("shadow", FSkinImage.IMG_ABILITY_SHADOW); - MANA_IMAGES.put("shroud", FSkinImage.IMG_ABILITY_SHROUD); - MANA_IMAGES.put("trample", FSkinImage.IMG_ABILITY_TRAMPLE); - MANA_IMAGES.put("vigilance", FSkinImage.IMG_ABILITY_VIGILANCE); + Forge.getAssets().MANA_IMAGES.put("deathtouch", FSkinImage.IMG_ABILITY_DEATHTOUCH); + Forge.getAssets().MANA_IMAGES.put("defender", FSkinImage.IMG_ABILITY_DEFENDER); + Forge.getAssets().MANA_IMAGES.put("doublestrike", FSkinImage.IMG_ABILITY_DOUBLE_STRIKE); + Forge.getAssets().MANA_IMAGES.put("firststrike", FSkinImage.IMG_ABILITY_FIRST_STRIKE); + Forge.getAssets().MANA_IMAGES.put("fear", FSkinImage.IMG_ABILITY_FEAR); + Forge.getAssets().MANA_IMAGES.put("flash", FSkinImage.IMG_ABILITY_FLASH); + Forge.getAssets().MANA_IMAGES.put("flying", FSkinImage.IMG_ABILITY_FLYING); + Forge.getAssets().MANA_IMAGES.put("haste", FSkinImage.IMG_ABILITY_HASTE); + Forge.getAssets().MANA_IMAGES.put("hexproof", FSkinImage.IMG_ABILITY_HEXPROOF); + Forge.getAssets().MANA_IMAGES.put("horsemanship", FSkinImage.IMG_ABILITY_HORSEMANSHIP); + Forge.getAssets().MANA_IMAGES.put("indestructible", FSkinImage.IMG_ABILITY_INDESTRUCTIBLE); + Forge.getAssets().MANA_IMAGES.put("intimidate", FSkinImage.IMG_ABILITY_INTIMIDATE); + Forge.getAssets().MANA_IMAGES.put("landwalk", FSkinImage.IMG_ABILITY_LANDWALK); + Forge.getAssets().MANA_IMAGES.put("lifelink", FSkinImage.IMG_ABILITY_LIFELINK); + Forge.getAssets().MANA_IMAGES.put("menace", FSkinImage.IMG_ABILITY_MENACE); + Forge.getAssets().MANA_IMAGES.put("reach", FSkinImage.IMG_ABILITY_REACH); + Forge.getAssets().MANA_IMAGES.put("shadow", FSkinImage.IMG_ABILITY_SHADOW); + Forge.getAssets().MANA_IMAGES.put("shroud", FSkinImage.IMG_ABILITY_SHROUD); + Forge.getAssets().MANA_IMAGES.put("trample", FSkinImage.IMG_ABILITY_TRAMPLE); + Forge.getAssets().MANA_IMAGES.put("vigilance", FSkinImage.IMG_ABILITY_VIGILANCE); //hexproof from - MANA_IMAGES.put("hexproofR", FSkinImage.IMG_ABILITY_HEXPROOF_R); - MANA_IMAGES.put("hexproofG", FSkinImage.IMG_ABILITY_HEXPROOF_G); - MANA_IMAGES.put("hexproofB", FSkinImage.IMG_ABILITY_HEXPROOF_B); - MANA_IMAGES.put("hexproofU", FSkinImage.IMG_ABILITY_HEXPROOF_U); - MANA_IMAGES.put("hexproofW", FSkinImage.IMG_ABILITY_HEXPROOF_W); - MANA_IMAGES.put("hexproofC", FSkinImage.IMG_ABILITY_HEXPROOF_C); - MANA_IMAGES.put("hexproofUB", FSkinImage.IMG_ABILITY_HEXPROOF_UB); + Forge.getAssets().MANA_IMAGES.put("hexproofR", FSkinImage.IMG_ABILITY_HEXPROOF_R); + Forge.getAssets().MANA_IMAGES.put("hexproofG", FSkinImage.IMG_ABILITY_HEXPROOF_G); + Forge.getAssets().MANA_IMAGES.put("hexproofB", FSkinImage.IMG_ABILITY_HEXPROOF_B); + Forge.getAssets().MANA_IMAGES.put("hexproofU", FSkinImage.IMG_ABILITY_HEXPROOF_U); + Forge.getAssets().MANA_IMAGES.put("hexproofW", FSkinImage.IMG_ABILITY_HEXPROOF_W); + Forge.getAssets().MANA_IMAGES.put("hexproofC", FSkinImage.IMG_ABILITY_HEXPROOF_C); + Forge.getAssets().MANA_IMAGES.put("hexproofUB", FSkinImage.IMG_ABILITY_HEXPROOF_UB); //token icon - MANA_IMAGES.put("token", FSkinImage.IMG_ABILITY_TOKEN); + Forge.getAssets().MANA_IMAGES.put("token", FSkinImage.IMG_ABILITY_TOKEN); //protection from - MANA_IMAGES.put("protectAll", FSkinImage.IMG_ABILITY_PROTECT_ALL); - MANA_IMAGES.put("protectB", FSkinImage.IMG_ABILITY_PROTECT_B); - MANA_IMAGES.put("protectBU", FSkinImage.IMG_ABILITY_PROTECT_BU); - MANA_IMAGES.put("protectBW", FSkinImage.IMG_ABILITY_PROTECT_BW); - MANA_IMAGES.put("protectColoredSpells", FSkinImage.IMG_ABILITY_PROTECT_COLOREDSPELLS); - MANA_IMAGES.put("protectG", FSkinImage.IMG_ABILITY_PROTECT_G); - MANA_IMAGES.put("protectGB", FSkinImage.IMG_ABILITY_PROTECT_GB); - MANA_IMAGES.put("protectGU", FSkinImage.IMG_ABILITY_PROTECT_GU); - MANA_IMAGES.put("protectGW", FSkinImage.IMG_ABILITY_PROTECT_GW); - MANA_IMAGES.put("protectGeneric", FSkinImage.IMG_ABILITY_PROTECT_GENERIC); - MANA_IMAGES.put("protectR", FSkinImage.IMG_ABILITY_PROTECT_R); - MANA_IMAGES.put("protectRB", FSkinImage.IMG_ABILITY_PROTECT_RB); - MANA_IMAGES.put("protectRG", FSkinImage.IMG_ABILITY_PROTECT_RG); - MANA_IMAGES.put("protectRU", FSkinImage.IMG_ABILITY_PROTECT_RU); - MANA_IMAGES.put("protectRW", FSkinImage.IMG_ABILITY_PROTECT_RW); - MANA_IMAGES.put("protectU", FSkinImage.IMG_ABILITY_PROTECT_U); - MANA_IMAGES.put("protectUW", FSkinImage.IMG_ABILITY_PROTECT_UW); - MANA_IMAGES.put("protectW", FSkinImage.IMG_ABILITY_PROTECT_W); + Forge.getAssets().MANA_IMAGES.put("protectAll", FSkinImage.IMG_ABILITY_PROTECT_ALL); + Forge.getAssets().MANA_IMAGES.put("protectB", FSkinImage.IMG_ABILITY_PROTECT_B); + Forge.getAssets().MANA_IMAGES.put("protectBU", FSkinImage.IMG_ABILITY_PROTECT_BU); + Forge.getAssets().MANA_IMAGES.put("protectBW", FSkinImage.IMG_ABILITY_PROTECT_BW); + Forge.getAssets().MANA_IMAGES.put("protectColoredSpells", FSkinImage.IMG_ABILITY_PROTECT_COLOREDSPELLS); + Forge.getAssets().MANA_IMAGES.put("protectG", FSkinImage.IMG_ABILITY_PROTECT_G); + Forge.getAssets().MANA_IMAGES.put("protectGB", FSkinImage.IMG_ABILITY_PROTECT_GB); + Forge.getAssets().MANA_IMAGES.put("protectGU", FSkinImage.IMG_ABILITY_PROTECT_GU); + Forge.getAssets().MANA_IMAGES.put("protectGW", FSkinImage.IMG_ABILITY_PROTECT_GW); + Forge.getAssets().MANA_IMAGES.put("protectGeneric", FSkinImage.IMG_ABILITY_PROTECT_GENERIC); + Forge.getAssets().MANA_IMAGES.put("protectR", FSkinImage.IMG_ABILITY_PROTECT_R); + Forge.getAssets().MANA_IMAGES.put("protectRB", FSkinImage.IMG_ABILITY_PROTECT_RB); + Forge.getAssets().MANA_IMAGES.put("protectRG", FSkinImage.IMG_ABILITY_PROTECT_RG); + Forge.getAssets().MANA_IMAGES.put("protectRU", FSkinImage.IMG_ABILITY_PROTECT_RU); + Forge.getAssets().MANA_IMAGES.put("protectRW", FSkinImage.IMG_ABILITY_PROTECT_RW); + Forge.getAssets().MANA_IMAGES.put("protectU", FSkinImage.IMG_ABILITY_PROTECT_U); + Forge.getAssets().MANA_IMAGES.put("protectUW", FSkinImage.IMG_ABILITY_PROTECT_UW); + Forge.getAssets().MANA_IMAGES.put("protectW", FSkinImage.IMG_ABILITY_PROTECT_W); } public static void drawManaCost(Graphics g, ManaCost manaCost, float x, float y, final float imageSize) { @@ -228,7 +226,7 @@ public class CardFaceSymbols { StringTokenizer tok = new StringTokenizer(s, " "); while (tok.hasMoreTokens()) { String symbol = tok.nextToken(); - FSkinImage image = MANA_IMAGES.get(symbol); + FSkinImage image = Forge.getAssets().MANA_IMAGES.get(symbol); if (image == null) { BugReporter.reportBug("Symbol not recognized \"" + symbol + "\" in string: " + s); continue; @@ -245,7 +243,7 @@ public class CardFaceSymbols { } public static void drawSymbol(final String imageName, final Graphics g, final float x, final float y, final float w, final float h) { - g.drawImage(MANA_IMAGES.get(imageName), x, y, w, h); + g.drawImage(Forge.getAssets().MANA_IMAGES.get(imageName), x, y, w, h); } public static float getWidth(final ManaCost manaCost, float imageSize) { diff --git a/forge-gui-mobile/src/forge/card/CardRenderer.java b/forge-gui-mobile/src/forge/card/CardRenderer.java index b8acce7d277..a34b54d3ba3 100644 --- a/forge-gui-mobile/src/forge/card/CardRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardRenderer.java @@ -88,7 +88,7 @@ public class CardRenderer { public void onImageFetched() { ImageCache.clear(); if (clearCardArtCache) { - cardArtCache.remove(key); + Forge.getAssets().cardArtCache.remove(key); } } } @@ -189,13 +189,12 @@ public class CardRenderer { return Math.round(MANA_SYMBOL_SIZE + FSkinFont.get(12).getLineHeight() + 3 * FList.PADDING + 1); } - private static final Map cardArtCache = new HashMap<>(1024); public static final float CARD_ART_RATIO = 1.302f; public static final float CARD_ART_HEIGHT_PERCENTAGE = 0.43f; private static List classicModuleCardtoCrop = FileUtil.readFile(ForgeConstants.CLASSIC_MODULE_CARD_TO_CROP_FILE); public static void clearcardArtCache(){ - cardArtCache.clear(); + Forge.getAssets().cardArtCache.clear(); } //extract card art from the given card @@ -219,7 +218,7 @@ public class CardRenderer { } public static FImageComplex getCardArt(String imageKey, boolean isSplitCard, boolean isHorizontalCard, boolean isAftermathCard, boolean isSaga, boolean isClass, boolean isDungeon, boolean isFlipCard, boolean isPlanesWalker, boolean isModernFrame) { - FImageComplex cardArt = cardArtCache.get(imageKey); + FImageComplex cardArt = Forge.getAssets().cardArtCache.get(imageKey); boolean isClassicModule = imageKey != null && imageKey.length() > 2 && classicModuleCardtoCrop.contains(imageKey.substring(ImageKeys.CARD_PREFIX.length()).replace(".jpg", "").replace(".png", "")); if (cardArt == null) { Texture image = new RendererCachedCardImage(imageKey, true).getImage(); @@ -280,7 +279,7 @@ public class CardRenderer { w *= artH / srcH; h *= artW / srcW; cardArt = new FRotatedImage(image, Math.round(x), Math.round(y), Math.round(w), Math.round(h), true); - cardArtCache.put(imageKey, cardArt); + Forge.getAssets().cardArtCache.put(imageKey, cardArt); return cardArt; } } else { @@ -303,7 +302,7 @@ public class CardRenderer { cardArt = new FTextureRegionImage(new TextureRegion(image, Math.round(x), Math.round(y), Math.round(w), Math.round(h))); } if (!CardImageRenderer.forgeArt.equals(cardArt)) - cardArtCache.put(imageKey, cardArt); + Forge.getAssets().cardArtCache.put(imageKey, cardArt); } } //fix display for effect @@ -313,13 +312,13 @@ public class CardRenderer { } public static FImageComplex getAftermathSecondCardArt(final String imageKey) { - FImageComplex cardArt = cardArtCache.get("Aftermath_second_"+imageKey); + FImageComplex cardArt = Forge.getAssets().cardArtCache.get("Aftermath_second_"+imageKey); if (cardArt == null) { Texture image = new CachedCardImage(imageKey) { @Override public void onImageFetched() { ImageCache.clear(); - cardArtCache.remove("Aftermath_second_" + imageKey); + Forge.getAssets().cardArtCache.remove("Aftermath_second_" + imageKey); } }.getImage(); if (image != null) { @@ -339,20 +338,20 @@ public class CardRenderer { } if (!CardImageRenderer.forgeArt.equals(cardArt)) - cardArtCache.put("Aftermath_second_"+imageKey, cardArt); + Forge.getAssets().cardArtCache.put("Aftermath_second_"+imageKey, cardArt); } } return cardArt; } public static FImageComplex getAlternateCardArt(final String imageKey, boolean isPlanesWalker) { - FImageComplex cardArt = cardArtCache.get("Alternate_"+imageKey); + FImageComplex cardArt = Forge.getAssets().cardArtCache.get("Alternate_"+imageKey); if (cardArt == null) { Texture image = new CachedCardImage(imageKey) { @Override public void onImageFetched() { ImageCache.clear(); - cardArtCache.remove("Alternate_" + imageKey); + Forge.getAssets().cardArtCache.remove("Alternate_" + imageKey); } }.getImage(); if (image != null) { @@ -386,7 +385,7 @@ public class CardRenderer { cardArt = new FTextureRegionImage(new TextureRegion(image, Math.round(x), Math.round(y), Math.round(w), Math.round(h))); } if (!CardImageRenderer.forgeArt.equals(cardArt)) - cardArtCache.put("Alternate_"+imageKey, cardArt); + Forge.getAssets().cardArtCache.put("Alternate_"+imageKey, cardArt); } } return cardArt; @@ -395,9 +394,9 @@ public class CardRenderer { public static FImageComplex getMeldCardParts(final String imageKey, boolean bottom) { FImageComplex cardArt; if (!bottom) { - cardArt = cardArtCache.get("Meld_primary_"+imageKey); + cardArt = Forge.getAssets().cardArtCache.get("Meld_primary_"+imageKey); } else { - cardArt = cardArtCache.get("Meld_secondary_"+imageKey); + cardArt = Forge.getAssets().cardArtCache.get("Meld_secondary_"+imageKey); } if (cardArt == null) { @@ -405,8 +404,8 @@ public class CardRenderer { @Override public void onImageFetched() { ImageCache.clear(); - cardArtCache.remove("Meld_primary_" + imageKey); - cardArtCache.remove("Meld_secondary_" + imageKey); + Forge.getAssets().cardArtCache.remove("Meld_primary_" + imageKey); + Forge.getAssets().cardArtCache.remove("Meld_secondary_" + imageKey); } }.getImage(); if (image != null) { @@ -421,9 +420,9 @@ public class CardRenderer { } if (!bottom && !CardImageRenderer.forgeArt.equals(cardArt)) - cardArtCache.put("Meld_primary_"+imageKey, cardArt); + Forge.getAssets().cardArtCache.put("Meld_primary_"+imageKey, cardArt); else if (!CardImageRenderer.forgeArt.equals(cardArt)) - cardArtCache.put("Meld_secondary_"+imageKey, cardArt); + Forge.getAssets().cardArtCache.put("Meld_secondary_"+imageKey, cardArt); } } return cardArt; diff --git a/forge-gui-mobile/src/forge/screens/match/MatchController.java b/forge-gui-mobile/src/forge/screens/match/MatchController.java index ff8120b4520..7643d16d684 100644 --- a/forge-gui-mobile/src/forge/screens/match/MatchController.java +++ b/forge-gui-mobile/src/forge/screens/match/MatchController.java @@ -2,7 +2,6 @@ package forge.screens.match; import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -74,8 +73,6 @@ public class MatchController extends AbstractGuiGame { private MatchController() { } public static final MatchController instance = new MatchController(); - private static final Map avatarImages = new HashMap<>(); - private static HostedMatch hostedMatch; private static MatchScreen view; private static GameState phaseGameState; @@ -114,7 +111,7 @@ public class MatchController extends AbstractGuiGame { public static FImage getPlayerAvatar(final PlayerView p) { final String lp = p.getLobbyPlayerName(); - FImage avatar = avatarImages.get(lp); + FImage avatar = Forge.getAssets().avatarImages.get(lp); if (avatar == null) { if (StringUtils.isEmpty(p.getAvatarCardImageKey())) { avatar = new FTextureRegionImage(FSkin.getAvatars().get(p.getAvatarIndex())); @@ -488,15 +485,13 @@ public class MatchController extends AbstractGuiGame { public void setSelectables(final Iterable cards) { super.setSelectables(cards); // update zones on tabletop and floating zones - non-selectable cards may be rendered differently - FThreads.invokeInEdtNowOrLater(new Runnable() { - @Override public final void run() { - for (final PlayerView p : getGameView().getPlayers()) { - if ( p.getCards(ZoneType.Battlefield) != null ) { - updateCards(p.getCards(ZoneType.Battlefield)); - } - if ( p.getCards(ZoneType.Hand) != null ) { - updateCards(p.getCards(ZoneType.Hand)); - } + FThreads.invokeInEdtNowOrLater(() -> { + for (final PlayerView p : getGameView().getPlayers()) { + if ( p.getCards(ZoneType.Battlefield) != null ) { + updateCards(p.getCards(ZoneType.Battlefield)); + } + if ( p.getCards(ZoneType.Hand) != null ) { + updateCards(p.getCards(ZoneType.Hand)); } } }); @@ -506,15 +501,13 @@ public class MatchController extends AbstractGuiGame { public void clearSelectables() { super.clearSelectables(); // update zones on tabletop and floating zones - non-selectable cards may be rendered differently - FThreads.invokeInEdtNowOrLater(new Runnable() { - @Override public final void run() { - for (final PlayerView p : getGameView().getPlayers()) { - if ( p.getCards(ZoneType.Battlefield) != null ) { - updateCards(p.getCards(ZoneType.Battlefield)); - } - if ( p.getCards(ZoneType.Hand) != null ) { - updateCards(p.getCards(ZoneType.Hand)); - } + FThreads.invokeInEdtNowOrLater(() -> { + for (final PlayerView p : getGameView().getPlayers()) { + if ( p.getCards(ZoneType.Battlefield) != null ) { + updateCards(p.getCards(ZoneType.Battlefield)); + } + if ( p.getCards(ZoneType.Hand) != null ) { + updateCards(p.getCards(ZoneType.Hand)); } } }); @@ -703,7 +696,7 @@ public class MatchController extends AbstractGuiGame { @Override public void setPlayerAvatar(final LobbyPlayer player, final IHasIcon ihi) { - avatarImages.put(player.getName(), ImageCache.getIcon(ihi)); + Forge.getAssets().avatarImages.put(player.getName(), ImageCache.getIcon(ihi)); } @Override