mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
Cut the dependence on images. Game module will store image keys, unaware of real image locations
This commit is contained in:
@@ -1,24 +1,15 @@
|
||||
package forge;
|
||||
|
||||
import forge.item.InventoryItem;
|
||||
|
||||
public class Dependencies {
|
||||
|
||||
public static PreferencesMethods preferences;
|
||||
public interface PreferencesMethods {
|
||||
public abstract boolean getEnableAiCheats();
|
||||
public abstract boolean getCloneModeSource();
|
||||
public abstract String getLogEntryType();
|
||||
public abstract String getCurrentAiProfile();
|
||||
public abstract boolean canRandomFoil();
|
||||
public abstract boolean isManaBurnEnabled();
|
||||
public abstract boolean areBlocksFree();
|
||||
}
|
||||
|
||||
public static ImageCacheMethods imagecache;
|
||||
public interface ImageCacheMethods {
|
||||
String getImageKey(InventoryItem cp, boolean altState);
|
||||
String getTokenKey(String imageName);
|
||||
String getMorphImage();
|
||||
@Deprecated public abstract boolean getEnableAiCheats();
|
||||
@Deprecated public abstract boolean getCloneModeSource();
|
||||
@Deprecated public abstract String getLogEntryType();
|
||||
@Deprecated public abstract String getCurrentAiProfile();
|
||||
@Deprecated public abstract boolean canRandomFoil();
|
||||
@Deprecated public abstract boolean isManaBurnEnabled();
|
||||
@Deprecated public abstract boolean areBlocksFree();
|
||||
}
|
||||
}
|
||||
51
forge-game/src/main/java/forge/ImageKeys.java
Normal file
51
forge-game/src/main/java/forge/ImageKeys.java
Normal file
@@ -0,0 +1,51 @@
|
||||
package forge;
|
||||
|
||||
import forge.item.BoosterPack;
|
||||
import forge.item.FatPack;
|
||||
import forge.item.InventoryItem;
|
||||
import forge.item.PaperCard;
|
||||
import forge.item.PaperToken;
|
||||
import forge.item.PreconDeck;
|
||||
import forge.item.TournamentPack;
|
||||
|
||||
public class ImageKeys {
|
||||
public static final String CARD_PREFIX = "c:";
|
||||
public static final String TOKEN_PREFIX = "t:";
|
||||
public static final String ICON_PREFIX = "i:";
|
||||
public static final String BOOSTER_PREFIX = "b:";
|
||||
public static final String FATPACK_PREFIX = "f:";
|
||||
public static final String PRECON_PREFIX = "p:";
|
||||
public static final String TOURNAMENTPACK_PREFIX = "o:";
|
||||
|
||||
public static final String MORPH_IMAGE = "morph";
|
||||
|
||||
public static final String BACKFACE_POSTFIX = "$alt";
|
||||
|
||||
// Inventory items don't have to know how a certain client should draw them.
|
||||
// That's why this method is not encapsulated and overloaded in the InventoryItem descendants
|
||||
public static String getImageKey(InventoryItem ii, boolean altState) {
|
||||
if ( ii instanceof PaperCard ) {
|
||||
PaperCard cp = (PaperCard)ii;
|
||||
return ImageKeys.CARD_PREFIX + cp.getName() + "|" + cp.getEdition() + "|" + cp.getArtIndex() + (altState ? BACKFACE_POSTFIX : "");
|
||||
}
|
||||
if ( ii instanceof TournamentPack )
|
||||
return ImageKeys.TOURNAMENTPACK_PREFIX + ((TournamentPack)ii).getEdition();
|
||||
if ( ii instanceof BoosterPack ) {
|
||||
BoosterPack bp = (BoosterPack)ii;
|
||||
int cntPics = StaticData.instance().getEditions().get(bp.getEdition()).getCntBoosterPictures();
|
||||
String suffix = (1 >= cntPics) ? "" : ("_" + bp.getArtIndex());
|
||||
return ImageKeys.BOOSTER_PREFIX + bp.getEdition() + suffix;
|
||||
}
|
||||
if ( ii instanceof FatPack )
|
||||
return ImageKeys.FATPACK_PREFIX + ((FatPack)ii).getEdition();
|
||||
if ( ii instanceof PreconDeck )
|
||||
return ImageKeys.PRECON_PREFIX + ((PreconDeck)ii).getImageFilename();
|
||||
if ( ii instanceof PaperToken )
|
||||
return ImageKeys.TOKEN_PREFIX + ((PaperToken)ii).getImageFilename();
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String getTokenKey(String tokenName) {
|
||||
return ImageKeys.TOKEN_PREFIX + tokenName;
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@ package forge.game.ability.effects;
|
||||
import java.util.List;
|
||||
|
||||
import forge.Command;
|
||||
import forge.Dependencies;
|
||||
import forge.ImageKeys;
|
||||
import forge.game.Game;
|
||||
import forge.game.ability.AbilityFactory;
|
||||
import forge.game.ability.AbilityUtils;
|
||||
@@ -104,7 +104,7 @@ public class EffectEffect extends SpellAbilityEffect {
|
||||
eff.addType("Effect"); // Or Emblem
|
||||
eff.setToken(true); // Set token to true, so when leaving play it gets nuked
|
||||
eff.setOwner(controller);
|
||||
eff.setImageKey(sa.hasParam("Image") ? Dependencies.imagecache.getTokenKey(sa.getParam("Image")) : hostCard.getImageKey());
|
||||
eff.setImageKey(sa.hasParam("Image") ? ImageKeys.getTokenKey(sa.getParam("Image")) : hostCard.getImageKey());
|
||||
eff.setColor(hostCard.getColor());
|
||||
eff.setImmutable(true);
|
||||
eff.setEffectSource(hostCard);
|
||||
|
||||
@@ -22,7 +22,7 @@ import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import forge.Dependencies;
|
||||
import forge.ImageKeys;
|
||||
import forge.card.CardCharacteristicName;
|
||||
import forge.card.CardRules;
|
||||
import forge.card.CardSplitType;
|
||||
@@ -266,7 +266,7 @@ public class CardFactory {
|
||||
c.setRarity(cp.getRarity());
|
||||
|
||||
// Would like to move this away from in-game entities
|
||||
String originalPicture = Dependencies.imagecache.getImageKey(cp, false);
|
||||
String originalPicture = ImageKeys.getImageKey(cp, false);
|
||||
//System.out.println(c.getName() + " -> " + originalPicture);
|
||||
c.setImageKey(originalPicture);
|
||||
c.setToken(cp.isToken());
|
||||
@@ -274,11 +274,11 @@ public class CardFactory {
|
||||
if (c.hasAlternateState()) {
|
||||
if (c.isFlipCard()) {
|
||||
c.setState(CardCharacteristicName.Flipped);
|
||||
c.setImageKey(Dependencies.imagecache.getImageKey(cp, true));
|
||||
c.setImageKey(ImageKeys.getImageKey(cp, true));
|
||||
}
|
||||
else if (c.isDoubleFaced() && cp instanceof PaperCard) {
|
||||
c.setState(CardCharacteristicName.Transformed);
|
||||
c.setImageKey(Dependencies.imagecache.getImageKey(cp, true));
|
||||
c.setImageKey(ImageKeys.getImageKey(cp, true));
|
||||
}
|
||||
else if (c.isSplitCard()) {
|
||||
c.setState(CardCharacteristicName.LeftSplit);
|
||||
@@ -576,7 +576,7 @@ public class CardFactory {
|
||||
final List<Card> list = new ArrayList<Card>();
|
||||
final Card c = new Card(controller.getGame().nextCardId());
|
||||
c.setName(name);
|
||||
c.setImageKey(Dependencies.imagecache.getTokenKey(imageName));
|
||||
c.setImageKey(ImageKeys.getTokenKey(imageName));
|
||||
|
||||
// TODO - most tokens mana cost is 0, this needs to be fixed
|
||||
// c.setManaCost(manaCost);
|
||||
|
||||
@@ -23,7 +23,7 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import forge.Constant;
|
||||
import forge.Dependencies;
|
||||
import forge.ImageKeys;
|
||||
import forge.card.CardCharacteristicName;
|
||||
import forge.card.ColorSet;
|
||||
import forge.card.MagicColor;
|
||||
@@ -217,7 +217,7 @@ public final class CardUtil {
|
||||
ret.setName("");
|
||||
ret.setType(types);
|
||||
|
||||
ret.setImageKey(Dependencies.imagecache.getMorphImage());
|
||||
ret.setImageKey(ImageKeys.getTokenKey(ImageKeys.MORPH_IMAGE));
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user