merge getPermanentImage(MagicPermanent permanent) and getCardImage(MagicCardDefinition cdef) into getCardImage(IRenderableCard face)

master
melvinzhang 2016-10-06 14:12:38 +08:00
parent be37bad925
commit 60976579b8
5 changed files with 15 additions and 17 deletions

View File

@ -145,4 +145,8 @@ public interface IRenderableCard {
default boolean hasTextOverlay() {
return hasAbility(MagicAbility.LevelUp) || isLand();
}
default long getRenderKey() {
return getCardDefinition().getDistinctName().hashCode();
}
}

View File

@ -204,6 +204,10 @@ public class MagicPermanent extends MagicObjectImpl implements MagicSource, Magi
return stateId;
}
public long getRenderKey() {
return getStateId();
}
private long getCountersHash() {
final long[] keys = new long[counters.size() * 2];
int idx = 0;

View File

@ -305,24 +305,12 @@ public final class MagicImages {
return ImageType.PROXY;
}
public static BufferedImage getCardImage(MagicCardDefinition cdef) {
final Long key = (long)cdef.getDistinctName().hashCode();
public static BufferedImage getCardImage(IRenderableCard face) {
final Long key = face.getRenderKey();
if (cache.containsKey(key)) {
return cache.get(key);
}
final BufferedImage image = createImage(cdef);
if (image != MISSING_CARD) {
cache.put(key, image);
}
return image;
}
public static BufferedImage getPermanentImage(MagicPermanent permanent) {
final Long key = permanent.getStateId();
if (cache.containsKey(key)) {
return cache.get(key);
}
final BufferedImage image = createImage(permanent);
final BufferedImage image = createImage(face);
if (image != MISSING_CARD) {
cache.put(key, image);
}

View File

@ -322,7 +322,9 @@ public class AnnotatedCardPanel extends JPanel {
private BufferedImage getCardImage(final MagicObject magicObject) {
if (magicObject instanceof MagicPermanent) {
final MagicPermanent perm = (MagicPermanent)magicObject;
return canRevealTrueFace(perm) && perm.getCardDefinition() != perm.getRealCardDefinition() ? getCardImage(perm.getRealCardDefinition()) : MagicImages.getPermanentImage(perm);
return canRevealTrueFace(perm) && perm.getCardDefinition() != perm.getRealCardDefinition() ?
getCardImage(perm.getRealCardDefinition()) :
MagicImages.getCardImage(perm);
} else {
return getCardImage(magicObject.getCardDefinition());
}

View File

@ -270,7 +270,7 @@ public class ImagePermanentViewer extends JPanel {
final int y2 = y1 + linkedRect.height - 1;
final BufferedImage image = GraphicsUtils.scale(
MagicImages.getPermanentImage(linkedInfo.permanent),
MagicImages.getCardImage(linkedInfo.permanent),
linkedInfo.tapped ? linkedRect.height : linkedRect.width,
linkedInfo.tapped ? linkedRect.width : linkedRect.height
);