mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 18:28:00 +00:00
- Modified setting. "Text/Mana Overlay" replaced with individual toggle setting for Card Name, P/T and Mana Cost overlays.
This commit is contained in:
@@ -1,222 +1,224 @@
|
|||||||
package forge.gui.home.settings;
|
package forge.gui.home.settings;
|
||||||
|
|
||||||
import java.awt.event.ItemEvent;
|
import java.awt.event.ItemEvent;
|
||||||
import java.awt.event.ItemListener;
|
import java.awt.event.ItemListener;
|
||||||
import java.awt.event.MouseAdapter;
|
import java.awt.event.MouseAdapter;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
import javax.swing.JCheckBox;
|
import javax.swing.JCheckBox;
|
||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
|
|
||||||
import org.apache.commons.lang.ArrayUtils;
|
import org.apache.commons.lang.ArrayUtils;
|
||||||
import org.apache.commons.lang3.text.WordUtils;
|
import org.apache.commons.lang3.text.WordUtils;
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
|
|
||||||
import forge.Command;
|
import forge.Command;
|
||||||
import forge.Constant.Preferences;
|
import forge.Constant.Preferences;
|
||||||
import forge.Singletons;
|
import forge.Singletons;
|
||||||
import forge.control.FControl.Screens;
|
import forge.control.FControl.Screens;
|
||||||
import forge.control.RestartUtil;
|
import forge.control.RestartUtil;
|
||||||
import forge.game.ai.AiProfileUtil;
|
import forge.game.ai.AiProfileUtil;
|
||||||
import forge.gui.framework.ICDoc;
|
import forge.gui.framework.ICDoc;
|
||||||
import forge.gui.framework.SLayoutIO;
|
import forge.gui.framework.SLayoutIO;
|
||||||
import forge.gui.toolbox.FSkin;
|
import forge.gui.toolbox.FSkin;
|
||||||
import forge.properties.ForgePreferences;
|
import forge.properties.ForgePreferences;
|
||||||
import forge.properties.ForgePreferences.FPref;
|
import forge.properties.ForgePreferences.FPref;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Controls the preferences submenu in the home UI.
|
* Controls the preferences submenu in the home UI.
|
||||||
*
|
*
|
||||||
* <br><br><i>(C at beginning of class name denotes a control class.)</i>
|
* <br><br><i>(C at beginning of class name denotes a control class.)</i>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public enum CSubmenuPreferences implements ICDoc {
|
public enum CSubmenuPreferences implements ICDoc {
|
||||||
/** */
|
/** */
|
||||||
SINGLETON_INSTANCE;
|
SINGLETON_INSTANCE;
|
||||||
|
|
||||||
|
|
||||||
private final List<Pair<JCheckBox, FPref>> lstControls = new ArrayList<Pair<JCheckBox,FPref>>();
|
private final List<Pair<JCheckBox, FPref>> lstControls = new ArrayList<Pair<JCheckBox,FPref>>();
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see forge.control.home.IControlSubmenu#update()
|
* @see forge.control.home.IControlSubmenu#update()
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
||||||
final ForgePreferences prefs = Singletons.getModel().getPreferences();
|
final ForgePreferences prefs = Singletons.getModel().getPreferences();
|
||||||
|
|
||||||
view.getLstChooseSkin().addMouseListener(new MouseAdapter() {
|
view.getLstChooseSkin().addMouseListener(new MouseAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void mouseClicked(final MouseEvent e) {
|
public void mouseClicked(final MouseEvent e) {
|
||||||
updateSkin();
|
updateSkin();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
view.getLstChooseAIProfile().addMouseListener(new MouseAdapter() {
|
view.getLstChooseAIProfile().addMouseListener(new MouseAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void mouseClicked(final MouseEvent e) {
|
public void mouseClicked(final MouseEvent e) {
|
||||||
updateAIProfile();
|
updateAIProfile();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// This updates variable right now and is not standard
|
// This updates variable right now and is not standard
|
||||||
view.getCbDevMode().addItemListener(new ItemListener() {
|
view.getCbDevMode().addItemListener(new ItemListener() {
|
||||||
@Override
|
@Override
|
||||||
public void itemStateChanged(final ItemEvent arg0) {
|
public void itemStateChanged(final ItemEvent arg0) {
|
||||||
final boolean toggle = view.getCbDevMode().isSelected();
|
final boolean toggle = view.getCbDevMode().isSelected();
|
||||||
prefs.setPref(FPref.DEV_MODE_ENABLED, String.valueOf(toggle));
|
prefs.setPref(FPref.DEV_MODE_ENABLED, String.valueOf(toggle));
|
||||||
Preferences.DEV_MODE = toggle;
|
Preferences.DEV_MODE = toggle;
|
||||||
prefs.save();
|
prefs.save();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
lstControls.clear(); // just in case
|
lstControls.clear(); // just in case
|
||||||
lstControls.add(Pair.of(view.getCbCompactMainMenu(), FPref.UI_COMPACT_MAIN_MENU));
|
lstControls.add(Pair.of(view.getCbCompactMainMenu(), FPref.UI_COMPACT_MAIN_MENU));
|
||||||
lstControls.add(Pair.of(view.getCbAnte(), FPref.UI_ANTE));
|
lstControls.add(Pair.of(view.getCbAnte(), FPref.UI_ANTE));
|
||||||
lstControls.add(Pair.of(view.getCbManaBurn(), FPref.UI_MANABURN));
|
lstControls.add(Pair.of(view.getCbManaBurn(), FPref.UI_MANABURN));
|
||||||
lstControls.add(Pair.of(view.getCbScaleLarger(), FPref.UI_SCALE_LARGER));
|
lstControls.add(Pair.of(view.getCbScaleLarger(), FPref.UI_SCALE_LARGER));
|
||||||
lstControls.add(Pair.of(view.getCbEnforceDeckLegality(), FPref.ENFORCE_DECK_LEGALITY));
|
lstControls.add(Pair.of(view.getCbEnforceDeckLegality(), FPref.ENFORCE_DECK_LEGALITY));
|
||||||
lstControls.add(Pair.of(view.getCbCloneImgSource(), FPref.UI_CLONE_MODE_SOURCE));
|
lstControls.add(Pair.of(view.getCbCloneImgSource(), FPref.UI_CLONE_MODE_SOURCE));
|
||||||
lstControls.add(Pair.of(view.getCbRemoveSmall(), FPref.DECKGEN_NOSMALL));
|
lstControls.add(Pair.of(view.getCbRemoveSmall(), FPref.DECKGEN_NOSMALL));
|
||||||
lstControls.add(Pair.of(view.getCbRemoveArtifacts(), FPref.DECKGEN_ARTIFACTS));
|
lstControls.add(Pair.of(view.getCbRemoveArtifacts(), FPref.DECKGEN_ARTIFACTS));
|
||||||
lstControls.add(Pair.of(view.getCbSingletons(), FPref.DECKGEN_SINGLETONS));
|
lstControls.add(Pair.of(view.getCbSingletons(), FPref.DECKGEN_SINGLETONS));
|
||||||
lstControls.add(Pair.of(view.getCbUploadDraft(), FPref.UI_UPLOAD_DRAFT));
|
lstControls.add(Pair.of(view.getCbUploadDraft(), FPref.UI_UPLOAD_DRAFT));
|
||||||
lstControls.add(Pair.of(view.getCbStackLand(), FPref.UI_SMOOTH_LAND));
|
lstControls.add(Pair.of(view.getCbStackLand(), FPref.UI_SMOOTH_LAND));
|
||||||
lstControls.add(Pair.of(view.getCbRandomFoil(), FPref.UI_RANDOM_FOIL));
|
lstControls.add(Pair.of(view.getCbRandomFoil(), FPref.UI_RANDOM_FOIL));
|
||||||
lstControls.add(Pair.of(view.getCbTextMana(), FPref.UI_CARD_OVERLAY));
|
lstControls.add(Pair.of(view.getCbOverlayCardName(), FPref.UI_OVERLAY_CARD_NAME));
|
||||||
lstControls.add(Pair.of(view.getCbRandomizeArt(), FPref.UI_RANDOM_CARD_ART));
|
lstControls.add(Pair.of(view.getCbOverlayCardPower(), FPref.UI_OVERLAY_CARD_POWER));
|
||||||
lstControls.add(Pair.of(view.getCbEnableSounds(), FPref.UI_ENABLE_SOUNDS));
|
lstControls.add(Pair.of(view.getCbOverlayCardManaCost(), FPref.UI_OVERLAY_CARD_MANA_COST));
|
||||||
lstControls.add(Pair.of(view.getCbAltSoundSystem(), FPref.UI_ALT_SOUND_SYSTEM));
|
lstControls.add(Pair.of(view.getCbRandomizeArt(), FPref.UI_RANDOM_CARD_ART));
|
||||||
lstControls.add(Pair.of(view.getCbUiForTouchScreen(), FPref.UI_FOR_TOUCHSCREN));
|
lstControls.add(Pair.of(view.getCbEnableSounds(), FPref.UI_ENABLE_SOUNDS));
|
||||||
|
lstControls.add(Pair.of(view.getCbAltSoundSystem(), FPref.UI_ALT_SOUND_SYSTEM));
|
||||||
for(final Pair<JCheckBox, FPref> kv : lstControls) {
|
lstControls.add(Pair.of(view.getCbUiForTouchScreen(), FPref.UI_FOR_TOUCHSCREN));
|
||||||
kv.getKey().addItemListener(new ItemListener() {
|
|
||||||
@Override
|
for(final Pair<JCheckBox, FPref> kv : lstControls) {
|
||||||
public void itemStateChanged(final ItemEvent arg0) {
|
kv.getKey().addItemListener(new ItemListener() {
|
||||||
prefs.setPref(kv.getValue(), String.valueOf(kv.getKey().isSelected()));
|
@Override
|
||||||
prefs.save();
|
public void itemStateChanged(final ItemEvent arg0) {
|
||||||
}
|
prefs.setPref(kv.getValue(), String.valueOf(kv.getKey().isSelected()));
|
||||||
});
|
prefs.save();
|
||||||
}
|
}
|
||||||
|
});
|
||||||
view.getBtnReset().setCommand(new Command() {
|
}
|
||||||
@Override
|
|
||||||
public void run() {
|
view.getBtnReset().setCommand(new Command() {
|
||||||
ForgePreferences prefs = Singletons.getModel().getPreferences();
|
@Override
|
||||||
prefs.reset();
|
public void run() {
|
||||||
prefs.save();
|
ForgePreferences prefs = Singletons.getModel().getPreferences();
|
||||||
update();
|
prefs.reset();
|
||||||
}
|
prefs.save();
|
||||||
});
|
update();
|
||||||
|
}
|
||||||
view.getBtnDeleteEditorUI().setCommand(new Command() {
|
});
|
||||||
@Override
|
|
||||||
public void run() {
|
view.getBtnDeleteEditorUI().setCommand(new Command() {
|
||||||
String fd = SLayoutIO.getFilePreferred(Screens.DECK_EDITOR_CONSTRUCTED);
|
@Override
|
||||||
File f = new File(fd);
|
public void run() {
|
||||||
f.delete();
|
String fd = SLayoutIO.getFilePreferred(Screens.DECK_EDITOR_CONSTRUCTED);
|
||||||
}
|
File f = new File(fd);
|
||||||
});
|
f.delete();
|
||||||
|
}
|
||||||
view.getBtnDeleteMatchUI().setCommand(new Command() {
|
});
|
||||||
@Override
|
|
||||||
public void run() {
|
view.getBtnDeleteMatchUI().setCommand(new Command() {
|
||||||
String fd = SLayoutIO.getFilePreferred(Screens.MATCH_SCREEN);
|
@Override
|
||||||
File f = new File(fd);
|
public void run() {
|
||||||
f.delete();
|
String fd = SLayoutIO.getFilePreferred(Screens.MATCH_SCREEN);
|
||||||
}
|
File f = new File(fd);
|
||||||
});
|
f.delete();
|
||||||
}
|
}
|
||||||
|
});
|
||||||
/* (non-Javadoc)
|
}
|
||||||
* @see forge.control.home.IControlSubmenu#update()
|
|
||||||
*/
|
/* (non-Javadoc)
|
||||||
@Override
|
* @see forge.control.home.IControlSubmenu#update()
|
||||||
public void update() {
|
*/
|
||||||
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
@Override
|
||||||
final ForgePreferences prefs = Singletons.getModel().getPreferences();
|
public void update() {
|
||||||
updateSkinNames();
|
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
||||||
updateAIProfiles();
|
final ForgePreferences prefs = Singletons.getModel().getPreferences();
|
||||||
|
updateSkinNames();
|
||||||
view.getCbDevMode().setSelected(prefs.getPrefBoolean(FPref.DEV_MODE_ENABLED));
|
updateAIProfiles();
|
||||||
|
|
||||||
for(Pair<JCheckBox, FPref> kv: lstControls) {
|
view.getCbDevMode().setSelected(prefs.getPrefBoolean(FPref.DEV_MODE_ENABLED));
|
||||||
kv.getKey().setSelected(prefs.getPrefBoolean(kv.getValue()));
|
|
||||||
}
|
for(Pair<JCheckBox, FPref> kv: lstControls) {
|
||||||
view.reloadShortcuts();
|
kv.getKey().setSelected(prefs.getPrefBoolean(kv.getValue()));
|
||||||
|
}
|
||||||
SwingUtilities.invokeLater(new Runnable() {
|
view.reloadShortcuts();
|
||||||
@Override public void run() { view.getCbRemoveSmall().requestFocusInWindow(); }
|
|
||||||
});
|
SwingUtilities.invokeLater(new Runnable() {
|
||||||
}
|
@Override public void run() { view.getCbRemoveSmall().requestFocusInWindow(); }
|
||||||
|
});
|
||||||
private void updateSkinNames() {
|
}
|
||||||
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
|
||||||
final String[] uglyNames = FSkin.getSkins().toArray(ArrayUtils.EMPTY_STRING_ARRAY);
|
private void updateSkinNames() {
|
||||||
final String[] prettyNames = new String[uglyNames.length];
|
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
||||||
final String currentName = Singletons.getModel().getPreferences().getPref(FPref.UI_SKIN);
|
final String[] uglyNames = FSkin.getSkins().toArray(ArrayUtils.EMPTY_STRING_ARRAY);
|
||||||
int currentIndex = 0;
|
final String[] prettyNames = new String[uglyNames.length];
|
||||||
|
final String currentName = Singletons.getModel().getPreferences().getPref(FPref.UI_SKIN);
|
||||||
for (int i = 0; i < uglyNames.length; i++) {
|
int currentIndex = 0;
|
||||||
prettyNames[i] = WordUtils.capitalize(uglyNames[i].replace('_', ' '));
|
|
||||||
if (currentName.equalsIgnoreCase(prettyNames[i])) { currentIndex = i; }
|
for (int i = 0; i < uglyNames.length; i++) {
|
||||||
}
|
prettyNames[i] = WordUtils.capitalize(uglyNames[i].replace('_', ' '));
|
||||||
|
if (currentName.equalsIgnoreCase(prettyNames[i])) { currentIndex = i; }
|
||||||
view.getLstChooseSkin().setListData(prettyNames);
|
}
|
||||||
view.getLstChooseSkin().setSelectedIndex(currentIndex);
|
|
||||||
view.getLstChooseSkin().ensureIndexIsVisible(view.getLstChooseSkin().getSelectedIndex());
|
view.getLstChooseSkin().setListData(prettyNames);
|
||||||
}
|
view.getLstChooseSkin().setSelectedIndex(currentIndex);
|
||||||
|
view.getLstChooseSkin().ensureIndexIsVisible(view.getLstChooseSkin().getSelectedIndex());
|
||||||
private void updateAIProfiles() {
|
}
|
||||||
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
|
||||||
final List<String> profileNames = AiProfileUtil.getProfilesDisplayList();
|
private void updateAIProfiles() {
|
||||||
final String currentName = Singletons.getModel().getPreferences().getPref(FPref.UI_CURRENT_AI_PROFILE);
|
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
||||||
int currentIndex = 0;
|
final List<String> profileNames = AiProfileUtil.getProfilesDisplayList();
|
||||||
|
final String currentName = Singletons.getModel().getPreferences().getPref(FPref.UI_CURRENT_AI_PROFILE);
|
||||||
for (int i = 0; i < profileNames.size(); i++) {
|
int currentIndex = 0;
|
||||||
if (currentName.equalsIgnoreCase(profileNames.get(i))) { currentIndex = i; }
|
|
||||||
}
|
for (int i = 0; i < profileNames.size(); i++) {
|
||||||
|
if (currentName.equalsIgnoreCase(profileNames.get(i))) { currentIndex = i; }
|
||||||
view.getLstChooseAIProfile().setListData(profileNames.toArray(ArrayUtils.EMPTY_STRING_ARRAY));
|
}
|
||||||
view.getLstChooseAIProfile().setSelectedIndex(currentIndex);
|
|
||||||
view.getLstChooseAIProfile().ensureIndexIsVisible(view.getLstChooseAIProfile().getSelectedIndex());
|
view.getLstChooseAIProfile().setListData(profileNames.toArray(ArrayUtils.EMPTY_STRING_ARRAY));
|
||||||
}
|
view.getLstChooseAIProfile().setSelectedIndex(currentIndex);
|
||||||
|
view.getLstChooseAIProfile().ensureIndexIsVisible(view.getLstChooseAIProfile().getSelectedIndex());
|
||||||
@SuppressWarnings("serial")
|
}
|
||||||
private void updateSkin() {
|
|
||||||
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
@SuppressWarnings("serial")
|
||||||
final String name = view.getLstChooseSkin().getSelectedValue().toString();
|
private void updateSkin() {
|
||||||
final ForgePreferences prefs = Singletons.getModel().getPreferences();
|
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
||||||
if (name.equals(prefs.getPref(FPref.UI_SKIN))) { return; }
|
final String name = view.getLstChooseSkin().getSelectedValue().toString();
|
||||||
|
final ForgePreferences prefs = Singletons.getModel().getPreferences();
|
||||||
view.getScrChooseSkin().setVisible(false);
|
if (name.equals(prefs.getPref(FPref.UI_SKIN))) { return; }
|
||||||
view.getLblChooseSkin().setText("Please restart Forge (click here to close).");
|
|
||||||
view.getLblChooseSkin().setHoverable(true);
|
view.getScrChooseSkin().setVisible(false);
|
||||||
view.getLblChooseSkin().setCommand(new Command() { @Override
|
view.getLblChooseSkin().setText("Please restart Forge (click here to close).");
|
||||||
public void run() { RestartUtil.restartApplication(null); } });
|
view.getLblChooseSkin().setHoverable(true);
|
||||||
|
view.getLblChooseSkin().setCommand(new Command() { @Override
|
||||||
prefs.setPref(FPref.UI_SKIN, name);
|
public void run() { RestartUtil.restartApplication(null); } });
|
||||||
prefs.save();
|
|
||||||
}
|
prefs.setPref(FPref.UI_SKIN, name);
|
||||||
|
prefs.save();
|
||||||
private void updateAIProfile() {
|
}
|
||||||
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
|
||||||
final String name = view.getLstChooseAIProfile().getSelectedValue().toString();
|
private void updateAIProfile() {
|
||||||
final ForgePreferences prefs = Singletons.getModel().getPreferences();
|
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
||||||
if (name.equals(prefs.getPref(FPref.UI_CURRENT_AI_PROFILE))) { return; }
|
final String name = view.getLstChooseAIProfile().getSelectedValue().toString();
|
||||||
|
final ForgePreferences prefs = Singletons.getModel().getPreferences();
|
||||||
prefs.setPref(FPref.UI_CURRENT_AI_PROFILE, name);
|
if (name.equals(prefs.getPref(FPref.UI_CURRENT_AI_PROFILE))) { return; }
|
||||||
prefs.save();
|
|
||||||
}
|
prefs.setPref(FPref.UI_CURRENT_AI_PROFILE, name);
|
||||||
/* (non-Javadoc)
|
prefs.save();
|
||||||
* @see forge.gui.framework.ICDoc#getCommandOnSelect()
|
}
|
||||||
*/
|
/* (non-Javadoc)
|
||||||
@Override
|
* @see forge.gui.framework.ICDoc#getCommandOnSelect()
|
||||||
public Command getCommandOnSelect() {
|
*/
|
||||||
return null;
|
@Override
|
||||||
}
|
public Command getCommandOnSelect() {
|
||||||
}
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -38,7 +38,9 @@ public class ForgePreferences extends PreferencesStore<ForgePreferences.FPref> {
|
|||||||
UI_RANDOM_FOIL ("false"),
|
UI_RANDOM_FOIL ("false"),
|
||||||
UI_SMOOTH_LAND ("false"),
|
UI_SMOOTH_LAND ("false"),
|
||||||
UI_AVATARS ("0,1"),
|
UI_AVATARS ("0,1"),
|
||||||
UI_CARD_OVERLAY ("true"),
|
UI_OVERLAY_CARD_NAME ("true"),
|
||||||
|
UI_OVERLAY_CARD_POWER ("true"),
|
||||||
|
UI_OVERLAY_CARD_MANA_COST ("true"),
|
||||||
UI_UPLOAD_DRAFT ("false"),
|
UI_UPLOAD_DRAFT ("false"),
|
||||||
UI_SCALE_LARGER ("true"),
|
UI_SCALE_LARGER ("true"),
|
||||||
UI_MAX_STACK ("3"),
|
UI_MAX_STACK ("3"),
|
||||||
|
|||||||
@@ -125,7 +125,6 @@ public class CardPanel extends JPanel implements CardContainer {
|
|||||||
private boolean isAnimationPanel;
|
private boolean isAnimationPanel;
|
||||||
private int cardXOffset, cardYOffset, cardWidth, cardHeight;
|
private int cardXOffset, cardYOffset, cardWidth, cardHeight;
|
||||||
private boolean isSelected;
|
private boolean isSelected;
|
||||||
private boolean showCastingCost;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -281,18 +280,6 @@ public class CardPanel extends JPanel implements CardContainer {
|
|||||||
return this.isSelected;
|
return this.isSelected;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Setter for the field <code>showCastingCost</code>.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @param showCastingCost
|
|
||||||
* a boolean.
|
|
||||||
*/
|
|
||||||
public final void setShowCastingCost(final boolean showCastingCost) {
|
|
||||||
this.showCastingCost = showCastingCost;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
@Override
|
@Override
|
||||||
public final void paint(final Graphics g) {
|
public final void paint(final Graphics g) {
|
||||||
@@ -361,7 +348,7 @@ public class CardPanel extends JPanel implements CardContainer {
|
|||||||
int height = CardFaceSymbols.getHeight();
|
int height = CardFaceSymbols.getHeight();
|
||||||
CardFaceSymbols.draw(g, cost, (this.cardXOffset + (this.cardWidth / 2)) - (width / 2), deltaY + this.cardYOffset + (this.cardHeight / 2) - height/2);
|
CardFaceSymbols.draw(g, cost, (this.cardXOffset + (this.cardWidth / 2)) - (width / 2), deltaY + this.cardYOffset + (this.cardHeight / 2) - height/2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
@Override
|
@Override
|
||||||
protected final void paintChildren(final Graphics g) {
|
protected final void paintChildren(final Graphics g) {
|
||||||
@@ -371,7 +358,7 @@ public class CardPanel extends JPanel implements CardContainer {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.showCastingCost && this.cardWidth < 200) {
|
if (showCardManaCostOverlay() && this.cardWidth < 200) {
|
||||||
Card gameCard = this.getGameCard();
|
Card gameCard = this.getGameCard();
|
||||||
boolean showSplitMana = gameCard.isSplitCard() && gameCard.getCurState() == CardCharacteristicName.Original;
|
boolean showSplitMana = gameCard.isSplitCard() && gameCard.getCurState() == CardCharacteristicName.Original;
|
||||||
if ( !showSplitMana ) {
|
if ( !showSplitMana ) {
|
||||||
@@ -593,34 +580,37 @@ public class CardPanel extends JPanel implements CardContainer {
|
|||||||
* a {@link forge.Card} object.
|
* a {@link forge.Card} object.
|
||||||
*/
|
*/
|
||||||
public final void setText(final Card card) {
|
public final void setText(final Card card) {
|
||||||
if ((card == null) || !Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CARD_OVERLAY)) {
|
|
||||||
|
if ((card == null)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (card.isFaceDown()) {
|
if (card.isFaceDown()) {
|
||||||
this.titleText.setText("");
|
this.titleText.setText("");
|
||||||
this.showCastingCost = false;
|
|
||||||
} else {
|
} else {
|
||||||
this.titleText.setText(card.getName());
|
if (showCardNameOverlay()) {
|
||||||
this.showCastingCost = true;
|
this.titleText.setText(card.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (showCardPowerOverlay()) {
|
||||||
|
String sPt = "";
|
||||||
|
if (card.isCreature() && card.isPlaneswalker()) {
|
||||||
|
sPt = String.format("%d/%d (%d)", card.getNetAttack(), card.getNetDefense(), card.getCounters(CounterType.LOYALTY));
|
||||||
|
} else if (card.isCreature()) {
|
||||||
|
sPt = String.format("%d/%d", card.getNetAttack(), card.getNetDefense());
|
||||||
|
} else if (card.isPlaneswalker()) {
|
||||||
|
int loyalty = card.getCounters(CounterType.LOYALTY);
|
||||||
|
sPt = String.valueOf(loyalty == 0 ? card.getBaseLoyalty() : loyalty);
|
||||||
|
}
|
||||||
|
this.ptText.setText(sPt);
|
||||||
}
|
}
|
||||||
|
|
||||||
String sPt = "";
|
|
||||||
if (card.isCreature() && card.isPlaneswalker()) {
|
|
||||||
sPt = String.format("%d/%d (%d)", card.getNetAttack(), card.getNetDefense(), card.getCounters(CounterType.LOYALTY));
|
|
||||||
} else if (card.isCreature()) {
|
|
||||||
sPt = String.format("%d/%d", card.getNetAttack(), card.getNetDefense());
|
|
||||||
} else if (card.isPlaneswalker()) {
|
|
||||||
int loyalty = card.getCounters(CounterType.LOYALTY);
|
|
||||||
sPt = String.valueOf(loyalty == 0 ? card.getBaseLoyalty() : loyalty);
|
|
||||||
}
|
|
||||||
this.ptText.setText(sPt);
|
|
||||||
|
|
||||||
int damage = card.getDamage();
|
int damage = card.getDamage();
|
||||||
this.damageText.setText(damage > 0 ? "\u00BB " + String.valueOf(damage) + " \u00AB" : "");
|
this.damageText.setText(damage > 0 ? "\u00BB " + String.valueOf(damage) + " \u00AB" : "");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* getCard.
|
* getCard.
|
||||||
@@ -646,13 +636,11 @@ public class CardPanel extends JPanel implements CardContainer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final BufferedImage image = card == null ? null : ImageCache.getImage(card, imagePanel.getWidth(), imagePanel.getHeight());
|
final BufferedImage image = card == null ? null : ImageCache.getImage(card, imagePanel.getWidth(), imagePanel.getHeight());
|
||||||
if ((this.getGameCard() != null) && Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CARD_OVERLAY)) {
|
this.setText(this.getGameCard());
|
||||||
this.setText(this.getGameCard());
|
|
||||||
}
|
|
||||||
|
|
||||||
this.setImage(image);
|
this.setImage(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the game card.
|
* Gets the game card.
|
||||||
*
|
*
|
||||||
@@ -775,4 +763,22 @@ public class CardPanel extends JPanel implements CardContainer {
|
|||||||
public static final float getBorderSize() {
|
public static final float getBorderSize() {
|
||||||
return BLACK_BORDER_SIZE;
|
return BLACK_BORDER_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isPreferenceEnabled(FPref preferenceName) {
|
||||||
|
return Singletons.getModel().getPreferences().getPrefBoolean(preferenceName);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean showCardNameOverlay() {
|
||||||
|
return isPreferenceEnabled(FPref.UI_OVERLAY_CARD_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean showCardPowerOverlay() {
|
||||||
|
return isPreferenceEnabled(FPref.UI_OVERLAY_CARD_POWER);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean showCardManaCostOverlay() {
|
||||||
|
return isPreferenceEnabled(FPref.UI_OVERLAY_CARD_MANA_COST) && !this.getCard().isFaceDown();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user