merge getPermanentImage(MagicPermanent permanent) and getCardImage(MagicCardDefinition cdef) into getCardImage(IRenderableCard face)
parent
be37bad925
commit
60976579b8
|
@ -145,4 +145,8 @@ public interface IRenderableCard {
|
||||||
default boolean hasTextOverlay() {
|
default boolean hasTextOverlay() {
|
||||||
return hasAbility(MagicAbility.LevelUp) || isLand();
|
return hasAbility(MagicAbility.LevelUp) || isLand();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default long getRenderKey() {
|
||||||
|
return getCardDefinition().getDistinctName().hashCode();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -204,6 +204,10 @@ public class MagicPermanent extends MagicObjectImpl implements MagicSource, Magi
|
||||||
return stateId;
|
return stateId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getRenderKey() {
|
||||||
|
return getStateId();
|
||||||
|
}
|
||||||
|
|
||||||
private long getCountersHash() {
|
private long getCountersHash() {
|
||||||
final long[] keys = new long[counters.size() * 2];
|
final long[] keys = new long[counters.size() * 2];
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
|
|
|
@ -305,24 +305,12 @@ public final class MagicImages {
|
||||||
return ImageType.PROXY;
|
return ImageType.PROXY;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BufferedImage getCardImage(MagicCardDefinition cdef) {
|
public static BufferedImage getCardImage(IRenderableCard face) {
|
||||||
final Long key = (long)cdef.getDistinctName().hashCode();
|
final Long key = face.getRenderKey();
|
||||||
if (cache.containsKey(key)) {
|
if (cache.containsKey(key)) {
|
||||||
return cache.get(key);
|
return cache.get(key);
|
||||||
}
|
}
|
||||||
final BufferedImage image = createImage(cdef);
|
final BufferedImage image = createImage(face);
|
||||||
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);
|
|
||||||
if (image != MISSING_CARD) {
|
if (image != MISSING_CARD) {
|
||||||
cache.put(key, image);
|
cache.put(key, image);
|
||||||
}
|
}
|
||||||
|
|
|
@ -322,7 +322,9 @@ public class AnnotatedCardPanel extends JPanel {
|
||||||
private BufferedImage getCardImage(final MagicObject magicObject) {
|
private BufferedImage getCardImage(final MagicObject magicObject) {
|
||||||
if (magicObject instanceof MagicPermanent) {
|
if (magicObject instanceof MagicPermanent) {
|
||||||
final MagicPermanent perm = (MagicPermanent)magicObject;
|
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 {
|
} else {
|
||||||
return getCardImage(magicObject.getCardDefinition());
|
return getCardImage(magicObject.getCardDefinition());
|
||||||
}
|
}
|
||||||
|
|
|
@ -270,7 +270,7 @@ public class ImagePermanentViewer extends JPanel {
|
||||||
final int y2 = y1 + linkedRect.height - 1;
|
final int y2 = y1 + linkedRect.height - 1;
|
||||||
|
|
||||||
final BufferedImage image = GraphicsUtils.scale(
|
final BufferedImage image = GraphicsUtils.scale(
|
||||||
MagicImages.getPermanentImage(linkedInfo.permanent),
|
MagicImages.getCardImage(linkedInfo.permanent),
|
||||||
linkedInfo.tapped ? linkedRect.height : linkedRect.width,
|
linkedInfo.tapped ? linkedRect.height : linkedRect.width,
|
||||||
linkedInfo.tapped ? linkedRect.width : linkedRect.height
|
linkedInfo.tapped ? linkedRect.width : linkedRect.height
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue