mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 10:40:06 -08:00
Mana symbols in ColorsChooser for deck generator.
This commit is contained in:
parent
2e86ffa300
commit
30b341f7d9
9 changed files with 66 additions and 9 deletions
Binary file not shown.
|
|
@ -1,5 +1,6 @@
|
||||||
package mage.client.plugins;
|
package mage.client.plugins;
|
||||||
|
|
||||||
|
import java.awt.Image;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
@ -30,4 +31,5 @@ public interface MagePlugins {
|
||||||
void downloadSymbols();
|
void downloadSymbols();
|
||||||
int getGamesPlayed();
|
int getGamesPlayed();
|
||||||
void addGamesPlayed();
|
void addGamesPlayed();
|
||||||
|
Image getManaSymbolImage(String symbol);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package mage.client.plugins.impl;
|
package mage.client.plugins.impl;
|
||||||
|
|
||||||
|
import java.awt.Image;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -158,4 +159,12 @@ public class Plugins implements MagePlugins {
|
||||||
public boolean isThemePluginLoaded() {
|
public boolean isThemePluginLoaded() {
|
||||||
return this.themePlugin != null;
|
return this.themePlugin != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Image getManaSymbolImage(String symbol) {
|
||||||
|
if (this.cardPlugin != null) {
|
||||||
|
return this.cardPlugin.getManaSymbolImage(symbol);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,23 @@
|
||||||
package mage.client.util.gui;
|
package mage.client.util.gui;
|
||||||
|
|
||||||
|
import java.awt.BorderLayout;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
|
import java.awt.FlowLayout;
|
||||||
import java.awt.GridLayout;
|
import java.awt.GridLayout;
|
||||||
|
import java.awt.Image;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import javax.swing.DefaultComboBoxModel;
|
import javax.swing.DefaultComboBoxModel;
|
||||||
|
import javax.swing.ImageIcon;
|
||||||
import javax.swing.JComboBox;
|
import javax.swing.JComboBox;
|
||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JList;
|
import javax.swing.JList;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import javax.swing.ListCellRenderer;
|
import javax.swing.ListCellRenderer;
|
||||||
|
|
||||||
|
import mage.client.plugins.impl.Plugins;
|
||||||
import mage.client.util.Constants;
|
import mage.client.util.Constants;
|
||||||
|
|
||||||
public class ColorsChooser extends JComboBox implements ListCellRenderer {
|
public class ColorsChooser extends JComboBox implements ListCellRenderer {
|
||||||
|
|
@ -41,7 +48,7 @@ public class ColorsChooser extends JComboBox implements ListCellRenderer {
|
||||||
public Component getListCellRendererComponent(final JList list, final Object value, final int index, final boolean isSelected,
|
public Component getListCellRendererComponent(final JList list, final Object value, final int index, final boolean isSelected,
|
||||||
final boolean cellHasFocus) {
|
final boolean cellHasFocus) {
|
||||||
|
|
||||||
final JPanel panel = new JPanel(new GridLayout(1, 3));
|
final JPanel panel = new JPanel(new FlowLayout());
|
||||||
drawOn(panel, (String) value);
|
drawOn(panel, (String) value);
|
||||||
panel.setBorder(Constants.EMPTY_BORDER);
|
panel.setBorder(Constants.EMPTY_BORDER);
|
||||||
if (isSelected) {
|
if (isSelected) {
|
||||||
|
|
@ -51,7 +58,30 @@ public class ColorsChooser extends JComboBox implements ListCellRenderer {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void drawOn(JPanel panel, String value) {
|
private void drawOn(JPanel panel, String value) {
|
||||||
String s = value.replace("b", "{B}").replace("r", "{R}").replace("g", "{G}").replace("w", "{W}").replace("u", "{U}");
|
List<Image> images = new ArrayList<Image>();
|
||||||
|
value = value.toUpperCase();
|
||||||
|
for (int i = 0; i < value.length(); i++) {
|
||||||
|
char symbol = value.charAt(i);
|
||||||
|
Image image = Plugins.getInstance().getManaSymbolImage(String.valueOf(symbol));
|
||||||
|
if (image != null) {
|
||||||
|
images.add(image);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (images.size() == value.length()) {
|
||||||
|
int dx = 0;
|
||||||
|
for (Image image : images) {
|
||||||
|
ImageIcon icon = new ImageIcon(image);
|
||||||
|
JLabel imageLabel = new JLabel();
|
||||||
|
imageLabel.setSize(11, 11);
|
||||||
|
imageLabel.setLocation(dx, 0);
|
||||||
|
imageLabel.setIcon(icon);
|
||||||
|
panel.add(imageLabel);
|
||||||
|
dx += 13;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
String s = value.replace("B", "{B}").replace("R", "{R}").replace("G", "{G}").replace("W", "{W}").replace("U", "{U}");
|
||||||
panel.add(new JLabel(s));
|
panel.add(new JLabel(s));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,6 @@ import mage.client.components.MageComponents;
|
||||||
import mage.client.components.MageUI;
|
import mage.client.components.MageUI;
|
||||||
import mage.util.Logging;
|
import mage.util.Logging;
|
||||||
|
|
||||||
import org.junit.Ignore;
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
public class StartMultiGamesTest {
|
public class StartMultiGamesTest {
|
||||||
|
|
||||||
private final static Logger logger = Logging.getLogger(StartMultiGamesTest.class.getName());
|
private final static Logger logger = Logging.getLogger(StartMultiGamesTest.class.getName());
|
||||||
|
|
@ -31,7 +28,7 @@ public class StartMultiGamesTest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
//@Test
|
||||||
public void testEmpty() {
|
public void testEmpty() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package mage.interfaces.plugin;
|
package mage.interfaces.plugin;
|
||||||
|
|
||||||
|
import java.awt.Image;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
@ -29,4 +30,5 @@ public interface CardPlugin extends Plugin {
|
||||||
void sortPermanents(Map<String, JComponent> ui, Collection<MagePermanent> cards);
|
void sortPermanents(Map<String, JComponent> ui, Collection<MagePermanent> cards);
|
||||||
void downloadImages(Set<Card> allCards);
|
void downloadImages(Set<Card> allCards);
|
||||||
void downloadSymbols();
|
void downloadSymbols();
|
||||||
|
Image getManaSymbolImage(String symbol);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,13 +19,14 @@ import org.mage.plugins.card.utils.BufferedImageBuilder;
|
||||||
public class ManaSymbols {
|
public class ManaSymbols {
|
||||||
private static final Logger log = Logger.getLogger(ManaSymbols.class);
|
private static final Logger log = Logger.getLogger(ManaSymbols.class);
|
||||||
static private final Map<String, Image> manaImages = new HashMap<String, Image>();
|
static private final Map<String, Image> manaImages = new HashMap<String, Image>();
|
||||||
|
static private final Map<String, Image> manaImagesOriginal = new HashMap<String, Image>();
|
||||||
static private Pattern replaceSymbolsPattern = Pattern.compile("\\{([^}/]*)/?([^}]*)\\}");
|
static private Pattern replaceSymbolsPattern = Pattern.compile("\\{([^}/]*)/?([^}]*)\\}");
|
||||||
|
|
||||||
static public void loadImages () {
|
static public void loadImages () {
|
||||||
String[] symbols = new String[] {"0", "1", "10", "11", "12", "15", "16", "2", "3", "4", "5", "6", "7", "8", "9", "B", "BG",
|
String[] symbols = new String[] {"0", "1", "10", "11", "12", "15", "16", "2", "3", "4", "5", "6", "7", "8", "9", "B", "BG",
|
||||||
"BR", "G", "GU", "GW", "R", "RG", "RW", "S", "T", "U", "UB", "UR", "W", "WB", "WU", "X", "Y", "Z", "slash"};
|
"BR", "G", "GU", "GW", "R", "RG", "RW", "S", "T", "U", "UB", "UR", "W", "WB", "WU", "X", "Y", "Z", "slash"};
|
||||||
for (String symbol : symbols) {
|
for (String symbol : symbols) {
|
||||||
File file = new File(Constants.RESOURCE_PATH_MANA + "/" + symbol + ".jpg");
|
File file = new File(Constants.RESOURCE_PATH_MANA_LARGE + "/" + symbol + ".jpg");
|
||||||
BufferedImageBuilder builder = new BufferedImageBuilder();
|
BufferedImageBuilder builder = new BufferedImageBuilder();
|
||||||
Rectangle r = new Rectangle(11, 11);
|
Rectangle r = new Rectangle(11, 11);
|
||||||
try {
|
try {
|
||||||
|
|
@ -33,9 +34,18 @@ public class ManaSymbols {
|
||||||
BufferedImage resized = ImageCache.getResizedImage(builder.bufferImage(image, BufferedImage.TYPE_INT_ARGB), r);
|
BufferedImage resized = ImageCache.getResizedImage(builder.bufferImage(image, BufferedImage.TYPE_INT_ARGB), r);
|
||||||
manaImages.put(symbol, resized);
|
manaImages.put(symbol, resized);
|
||||||
} catch (Exception e) {}
|
} catch (Exception e) {}
|
||||||
|
file = new File(Constants.RESOURCE_PATH_MANA_MEDIUM + "/" + symbol + ".jpg");
|
||||||
|
try {
|
||||||
|
Image image = UI.getImageIcon(file.getAbsolutePath()).getImage();
|
||||||
|
manaImagesOriginal.put(symbol, image);
|
||||||
|
} catch (Exception e) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static public Image getManaSymbolImage(String symbol) {
|
||||||
|
return manaImagesOriginal.get(symbol);
|
||||||
|
}
|
||||||
|
|
||||||
static public void draw (Graphics g, String manaCost, int x, int y) {
|
static public void draw (Graphics g, String manaCost, int x, int y) {
|
||||||
if (manaCost.length() == 0) return;
|
if (manaCost.length() == 0) return;
|
||||||
manaCost = manaCost.replace("\\", "");
|
manaCost = manaCost.replace("\\", "");
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package org.mage.plugins.card;
|
||||||
|
|
||||||
import java.awt.BorderLayout;
|
import java.awt.BorderLayout;
|
||||||
import java.awt.Frame;
|
import java.awt.Frame;
|
||||||
|
import java.awt.Image;
|
||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
import java.awt.event.WindowAdapter;
|
import java.awt.event.WindowAdapter;
|
||||||
import java.awt.event.WindowEvent;
|
import java.awt.event.WindowEvent;
|
||||||
|
|
@ -427,4 +428,9 @@ public class CardPluginImpl implements CardPlugin {
|
||||||
d.pack();
|
d.pack();
|
||||||
d.setVisible(true);
|
d.setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Image getManaSymbolImage(String symbol) {
|
||||||
|
return ManaSymbols.getManaSymbolImage(symbol);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,8 @@ import java.awt.Rectangle;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
public class Constants {
|
public class Constants {
|
||||||
public static final String RESOURCE_PATH_MANA = IO.imageBaseDir + "symbols" + File.separator + "large";
|
public static final String RESOURCE_PATH_MANA_LARGE = IO.imageBaseDir + "symbols" + File.separator + "large";
|
||||||
|
public static final String RESOURCE_PATH_MANA_MEDIUM = IO.imageBaseDir + "symbols" + File.separator + "medium";
|
||||||
|
|
||||||
public static final Rectangle CARD_SIZE_FULL = new Rectangle(101, 149);
|
public static final Rectangle CARD_SIZE_FULL = new Rectangle(101, 149);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue