mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
move skin and art related objects to Assets
This commit is contained in:
@@ -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<Integer, FSkinFont> fonts = new HashMap<>();
|
||||
public HashMap<String, FImageComplex> cardArtCache = new HashMap<>(1024);
|
||||
public HashMap<String, FImage> avatarImages = new HashMap<>();
|
||||
public HashMap<String, FSkinImage> MANA_IMAGES = new HashMap<>(128);
|
||||
public HashMap<String, FSkinImage> symbolLookup = new HashMap<>(64);
|
||||
public HashMap<FSkinProp, FSkinImage> images = new HashMap<>(512);
|
||||
public HashMap<Integer, TextureRegion> avatars = new HashMap<>(150);
|
||||
public HashMap<Integer, TextureRegion> sleeves = new HashMap<>(64);
|
||||
public HashMap<Integer, TextureRegion> cracks = new HashMap<>(16);
|
||||
public HashMap<Integer, TextureRegion> borders = new HashMap<>();
|
||||
public HashMap<Integer, TextureRegion> deckbox = new HashMap<>();
|
||||
public HashMap<Integer, TextureRegion> cursor = new HashMap<>();
|
||||
public ObjectMap<Integer, BitmapFont> counterFonts = new ObjectMap<>();
|
||||
public ObjectMap<String, Texture> generatedCards = new ObjectMap<>(512);
|
||||
public ObjectMap<Integer, Texture> fallback_skins = new ObjectMap<>();
|
||||
|
||||
@@ -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<FSkinProp, FSkinImage> images = new HashMap<>(512);
|
||||
private static final Map<Integer, TextureRegion> avatars = new HashMap<>(150);
|
||||
private static final Map<Integer, TextureRegion> sleeves = new HashMap<>(64);
|
||||
private static final Map<Integer, TextureRegion> cracks = new HashMap<>(16);
|
||||
private static final Map<Integer, TextureRegion> borders = new HashMap<>();
|
||||
private static final Map<Integer, TextureRegion> deckbox = new HashMap<>();
|
||||
private static final Map<Integer, TextureRegion> cursor = new HashMap<>();
|
||||
|
||||
private static Array<String> 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<FSkinProp, FSkinImage> getImages() {
|
||||
return images;
|
||||
return Forge.getAssets().images;
|
||||
}
|
||||
|
||||
public static Map<Integer, TextureRegion> getAvatars() {
|
||||
return avatars;
|
||||
return Forge.getAssets().avatars;
|
||||
}
|
||||
|
||||
public static Map<Integer, TextureRegion> getSleeves() {
|
||||
return sleeves;
|
||||
return Forge.getAssets().sleeves;
|
||||
}
|
||||
|
||||
public static Map<Integer, TextureRegion> getCracks() {
|
||||
return cracks;
|
||||
return Forge.getAssets().cracks;
|
||||
}
|
||||
|
||||
public static Map<Integer, TextureRegion> getBorders() {
|
||||
return borders;
|
||||
return Forge.getAssets().borders;
|
||||
}
|
||||
|
||||
public static Map<Integer, TextureRegion> getDeckbox() {
|
||||
return deckbox;
|
||||
return Forge.getAssets().deckbox;
|
||||
}
|
||||
|
||||
public static Map<Integer, TextureRegion> getCursor() {
|
||||
return cursor;
|
||||
return Forge.getAssets().cursor;
|
||||
}
|
||||
|
||||
public static boolean isLoaded() { return loaded; }
|
||||
|
||||
@@ -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<String, FSkinImage> 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) {
|
||||
|
||||
@@ -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<String, FSkinImage> 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) {
|
||||
|
||||
@@ -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<String, FImageComplex> 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<String> 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;
|
||||
|
||||
@@ -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<String, FImage> 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<CardView> 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
|
||||
|
||||
Reference in New Issue
Block a user