From 4cc156f75e6c7042e8653252be31731619e31f7f Mon Sep 17 00:00:00 2001 From: ShawnieBoy Date: Thu, 6 Oct 2016 16:53:28 +0100 Subject: [PATCH] enable images for token permanents --- .../cardBuilder/renderers/CardBuilder.java | 1 + .../cardBuilder/renderers/ImageFrame.java | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/src/magic/cardBuilder/renderers/CardBuilder.java b/src/magic/cardBuilder/renderers/CardBuilder.java index e112ca1428..bfa75d00d7 100644 --- a/src/magic/cardBuilder/renderers/CardBuilder.java +++ b/src/magic/cardBuilder/renderers/CardBuilder.java @@ -98,6 +98,7 @@ public class CardBuilder { private static BufferedImage makeToken(IRenderableCard cardDef) { BufferedImage cardImage = Frame.getTokenFrameType(cardDef); + ImageFrame.drawImage(cardImage,cardDef); PTFrame.drawPTPanel(cardImage, cardDef); OracleText.drawOracleText(cardImage, cardDef); TitleFrame.drawCardName(cardImage, cardDef); diff --git a/src/magic/cardBuilder/renderers/ImageFrame.java b/src/magic/cardBuilder/renderers/ImageFrame.java index 555034fa21..2e24fc8e58 100644 --- a/src/magic/cardBuilder/renderers/ImageFrame.java +++ b/src/magic/cardBuilder/renderers/ImageFrame.java @@ -59,6 +59,8 @@ public class ImageFrame { Graphics2D g2d = card.createGraphics(); if (cardDef.isPlaneswalker()) { g2d.drawImage(getCardImage(cardDef), null, 27, 54); + } else if (cardDef.isToken()) { + g2d.drawImage(getCardImage(cardDef), null, 29, 64); } else { g2d.drawImage(getCardImage(cardDef), null, 29, 60); } @@ -126,6 +128,16 @@ public class ImageFrame { BufferedImage blend = GraphicsUtils.scale(ResourceManager.newFrame(ResourceManager.getPlaneswalkerImageBlend), 320, 201); return Frame.getBlendedFrame(new BufferedImage(320, 210, BufferedImage.TYPE_INT_ARGB), blend, cropSmall); } + } else if (cardDef.isToken()) { + if (cardDef.hasText()) { + BufferedImage crop = GraphicsUtils.scale(ImageFileIO.toImg(cropFile, MagicImages.MISSING_CARD), 320, 289); + BufferedImage blend = ResourceManager.newFrame(ResourceManager.tokenImageMaskSmall); + return Frame.getBlendedFrame(new BufferedImage(320, 289, BufferedImage.TYPE_INT_ARGB), blend, crop); + } else { + BufferedImage crop = GraphicsUtils.scale(ImageFileIO.toImg(cropFile, MagicImages.MISSING_CARD), 320, 360); + BufferedImage blend =ResourceManager.newFrame(ResourceManager.tokenImageMaskLarge); + return Frame.getBlendedFrame(new BufferedImage(320, 360, BufferedImage.TYPE_INT_ARGB), blend, crop); + } } else { BufferedImage image = ImageFileIO.toImg(cropFile, MagicImages.MISSING_CARD); return GraphicsUtils.scale(image, 316, 231); @@ -134,6 +146,9 @@ public class ImageFrame { if (cardDef.isPlaneswalker()) { return buildPlaneswalkerImage(cardDef); } + if (cardDef.isToken()) { + return buildTokenImage(cardDef); + } return buildDefaultImage(cardDef); } @@ -159,6 +174,23 @@ public class ImageFrame { return getCompositeImage(image, symbol); } + private static BufferedImage buildTokenImage(IRenderableCard cardDef) { + int WIDTH= 317; + int HEIGHT; + BufferedImage blend; + if (cardDef.hasText()) { + HEIGHT = 289; + blend = ResourceManager.newFrame(ResourceManager.tokenImageMaskSmall); + } else { + HEIGHT = 360; + blend = ResourceManager.newFrame((ResourceManager.tokenImageMaskLarge)); + } + BufferedImage background = GraphicsUtils.scale(getDefaultBackground(cardDef), WIDTH, HEIGHT); + BufferedImage symbol = GraphicsUtils.scale(getDefaultSymbol(cardDef), WIDTH, HEIGHT); + BufferedImage image = Frame.getBlendedFrame(new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_ARGB), blend, background); + return getCompositeImage(image,symbol); + } + static BufferedImage getCompositeImage(BufferedImage baseFrame, BufferedImage topFrame) { //create top Image Graphics2D graphics2D = topFrame.createGraphics();