From 8276b5c51a19e946315d1272e6dbccae11c397bd Mon Sep 17 00:00:00 2001 From: drdev Date: Sat, 8 Feb 2014 18:29:04 +0000 Subject: [PATCH] Support apply foil effect to card images in CardManager Image View --- .../toolbox/itemmanager/views/ImageView.java | 7 +++++++ .../forge/properties/ForgePreferences.java | 1 + .../main/java/forge/view/arcane/CardPanel.java | 18 ++++++++++++------ 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ImageView.java b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ImageView.java index cf9e02eeb08..76ed1042f59 100644 --- a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ImageView.java +++ b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ImageView.java @@ -1062,6 +1062,7 @@ public class ImageView extends ItemView { g.setColor(Color.black); g.fillRoundRect(bounds.x, bounds.y, bounds.width, bounds.height, cornerSize, cornerSize); + InventoryItem item = itemInfo.item; BufferedImage img = ImageCache.getImage(itemInfo.item, bounds.width - 2 * borderSize, bounds.height - 2 * borderSize); if (img != null) { g.drawImage(img, null, bounds.x + borderSize, bounds.y + borderSize); @@ -1073,6 +1074,12 @@ public class ImageView extends ItemView { g.drawString(itemInfo.item.getName(), bounds.x + 10, bounds.y + 20); g.setClip(clip); } + + //draw foil effect if needed + if (item instanceof IPaperCard) { + CardPanel.drawFoilEffect(g, Card.getCardForUi((IPaperCard)item), + bounds.x, bounds.y, bounds.width, bounds.height, borderSize); + } } } } diff --git a/forge-gui/src/main/java/forge/properties/ForgePreferences.java b/forge-gui/src/main/java/forge/properties/ForgePreferences.java index e39684d2643..59cf1888710 100644 --- a/forge-gui/src/main/java/forge/properties/ForgePreferences.java +++ b/forge-gui/src/main/java/forge/properties/ForgePreferences.java @@ -54,6 +54,7 @@ public class ForgePreferences extends PreferencesStore { UI_OVERLAY_CARD_POWER ("true"), UI_OVERLAY_CARD_MANA_COST ("true"), UI_OVERLAY_CARD_ID ("true"), + UI_OVERLAY_FOIL_EFFECT ("true"), UI_HIDE_REMINDER_TEXT ("false"), UI_UPLOAD_DRAFT ("false"), UI_SCALE_LARGER ("true"), diff --git a/forge-gui/src/main/java/forge/view/arcane/CardPanel.java b/forge-gui/src/main/java/forge/view/arcane/CardPanel.java index 8c718b51fe8..75cf7398f0d 100644 --- a/forge-gui/src/main/java/forge/view/arcane/CardPanel.java +++ b/forge-gui/src/main/java/forge/view/arcane/CardPanel.java @@ -412,11 +412,17 @@ public class CardPanel extends SkinnedPanel implements CardContainer, IDisposabl (this.cardYOffset + (this.cardHeight / 2)) - 20); } - if (card.getFoil() > 0) { - final String fl = String.format("foil%02d", card.getFoil()); - final int z = Math.round(this.cardWidth * CardPanel.BLACK_BORDER_SIZE); - CardFaceSymbols.drawOther(g, fl, this.cardXOffset + z, this.cardYOffset + z, this.cardWidth - (2 * z), - this.cardHeight - (2 * z)); + drawFoilEffect(g, card, this.cardXOffset, this.cardYOffset, + this.cardWidth, this.cardHeight, Math.round(this.cardWidth * BLACK_BORDER_SIZE)); + } + + public static void drawFoilEffect(Graphics g, Card card, int x, int y, int width, int height, int borderSize) { + if (isPreferenceEnabled(FPref.UI_OVERLAY_FOIL_EFFECT)) { + int foil = card.getFoil(); + if (foil > 0) { + CardFaceSymbols.drawOther(g, String.format("foil%02d", foil), + x + borderSize, y + borderSize, width - 2 * borderSize, height - 2 * borderSize); + } } } @@ -781,7 +787,7 @@ public class CardPanel extends SkinnedPanel implements CardContainer, IDisposabl return BLACK_BORDER_SIZE; } - private boolean isPreferenceEnabled(FPref preferenceName) { + private static boolean isPreferenceEnabled(FPref preferenceName) { return Singletons.getModel().getPreferences().getPrefBoolean(preferenceName); }