mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 10:18:01 +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;
|
||||
|
||||
import java.awt.event.ItemEvent;
|
||||
import java.awt.event.ItemListener;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.io.File;
|
||||
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.apache.commons.lang3.text.WordUtils;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import forge.Command;
|
||||
import forge.Constant.Preferences;
|
||||
import forge.Singletons;
|
||||
import forge.control.FControl.Screens;
|
||||
import forge.control.RestartUtil;
|
||||
import forge.game.ai.AiProfileUtil;
|
||||
import forge.gui.framework.ICDoc;
|
||||
import forge.gui.framework.SLayoutIO;
|
||||
import forge.gui.toolbox.FSkin;
|
||||
import forge.properties.ForgePreferences;
|
||||
import forge.properties.ForgePreferences.FPref;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Controls the preferences submenu in the home UI.
|
||||
*
|
||||
* <br><br><i>(C at beginning of class name denotes a control class.)</i>
|
||||
*
|
||||
*/
|
||||
public enum CSubmenuPreferences implements ICDoc {
|
||||
/** */
|
||||
SINGLETON_INSTANCE;
|
||||
|
||||
|
||||
private final List<Pair<JCheckBox, FPref>> lstControls = new ArrayList<Pair<JCheckBox,FPref>>();
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see forge.control.home.IControlSubmenu#update()
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
@Override
|
||||
public void initialize() {
|
||||
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
||||
final ForgePreferences prefs = Singletons.getModel().getPreferences();
|
||||
|
||||
view.getLstChooseSkin().addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(final MouseEvent e) {
|
||||
updateSkin();
|
||||
}
|
||||
});
|
||||
|
||||
view.getLstChooseAIProfile().addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(final MouseEvent e) {
|
||||
updateAIProfile();
|
||||
}
|
||||
});
|
||||
|
||||
// This updates variable right now and is not standard
|
||||
view.getCbDevMode().addItemListener(new ItemListener() {
|
||||
@Override
|
||||
public void itemStateChanged(final ItemEvent arg0) {
|
||||
final boolean toggle = view.getCbDevMode().isSelected();
|
||||
prefs.setPref(FPref.DEV_MODE_ENABLED, String.valueOf(toggle));
|
||||
Preferences.DEV_MODE = toggle;
|
||||
prefs.save();
|
||||
}
|
||||
});
|
||||
|
||||
lstControls.clear(); // just in case
|
||||
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.getCbManaBurn(), FPref.UI_MANABURN));
|
||||
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.getCbCloneImgSource(), FPref.UI_CLONE_MODE_SOURCE));
|
||||
lstControls.add(Pair.of(view.getCbRemoveSmall(), FPref.DECKGEN_NOSMALL));
|
||||
lstControls.add(Pair.of(view.getCbRemoveArtifacts(), FPref.DECKGEN_ARTIFACTS));
|
||||
lstControls.add(Pair.of(view.getCbSingletons(), FPref.DECKGEN_SINGLETONS));
|
||||
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.getCbRandomFoil(), FPref.UI_RANDOM_FOIL));
|
||||
lstControls.add(Pair.of(view.getCbTextMana(), FPref.UI_CARD_OVERLAY));
|
||||
lstControls.add(Pair.of(view.getCbRandomizeArt(), FPref.UI_RANDOM_CARD_ART));
|
||||
lstControls.add(Pair.of(view.getCbEnableSounds(), FPref.UI_ENABLE_SOUNDS));
|
||||
lstControls.add(Pair.of(view.getCbAltSoundSystem(), FPref.UI_ALT_SOUND_SYSTEM));
|
||||
lstControls.add(Pair.of(view.getCbUiForTouchScreen(), FPref.UI_FOR_TOUCHSCREN));
|
||||
|
||||
for(final Pair<JCheckBox, FPref> kv : lstControls) {
|
||||
kv.getKey().addItemListener(new ItemListener() {
|
||||
@Override
|
||||
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() {
|
||||
ForgePreferences prefs = Singletons.getModel().getPreferences();
|
||||
prefs.reset();
|
||||
prefs.save();
|
||||
update();
|
||||
}
|
||||
});
|
||||
|
||||
view.getBtnDeleteEditorUI().setCommand(new Command() {
|
||||
@Override
|
||||
public void run() {
|
||||
String fd = SLayoutIO.getFilePreferred(Screens.DECK_EDITOR_CONSTRUCTED);
|
||||
File f = new File(fd);
|
||||
f.delete();
|
||||
}
|
||||
});
|
||||
|
||||
view.getBtnDeleteMatchUI().setCommand(new Command() {
|
||||
@Override
|
||||
public void run() {
|
||||
String fd = SLayoutIO.getFilePreferred(Screens.MATCH_SCREEN);
|
||||
File f = new File(fd);
|
||||
f.delete();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see forge.control.home.IControlSubmenu#update()
|
||||
*/
|
||||
@Override
|
||||
public void update() {
|
||||
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
||||
final ForgePreferences prefs = Singletons.getModel().getPreferences();
|
||||
updateSkinNames();
|
||||
updateAIProfiles();
|
||||
|
||||
view.getCbDevMode().setSelected(prefs.getPrefBoolean(FPref.DEV_MODE_ENABLED));
|
||||
|
||||
for(Pair<JCheckBox, FPref> kv: lstControls) {
|
||||
kv.getKey().setSelected(prefs.getPrefBoolean(kv.getValue()));
|
||||
}
|
||||
view.reloadShortcuts();
|
||||
|
||||
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);
|
||||
final String[] prettyNames = new String[uglyNames.length];
|
||||
final String currentName = Singletons.getModel().getPreferences().getPref(FPref.UI_SKIN);
|
||||
int currentIndex = 0;
|
||||
|
||||
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());
|
||||
}
|
||||
|
||||
private void updateAIProfiles() {
|
||||
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
||||
final List<String> profileNames = AiProfileUtil.getProfilesDisplayList();
|
||||
final String currentName = Singletons.getModel().getPreferences().getPref(FPref.UI_CURRENT_AI_PROFILE);
|
||||
int currentIndex = 0;
|
||||
|
||||
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());
|
||||
}
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
private void updateSkin() {
|
||||
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
||||
final String name = view.getLstChooseSkin().getSelectedValue().toString();
|
||||
final ForgePreferences prefs = Singletons.getModel().getPreferences();
|
||||
if (name.equals(prefs.getPref(FPref.UI_SKIN))) { return; }
|
||||
|
||||
view.getScrChooseSkin().setVisible(false);
|
||||
view.getLblChooseSkin().setText("Please restart Forge (click here to close).");
|
||||
view.getLblChooseSkin().setHoverable(true);
|
||||
view.getLblChooseSkin().setCommand(new Command() { @Override
|
||||
public void run() { RestartUtil.restartApplication(null); } });
|
||||
|
||||
prefs.setPref(FPref.UI_SKIN, name);
|
||||
prefs.save();
|
||||
}
|
||||
|
||||
private void updateAIProfile() {
|
||||
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
||||
final String name = view.getLstChooseAIProfile().getSelectedValue().toString();
|
||||
final ForgePreferences prefs = Singletons.getModel().getPreferences();
|
||||
if (name.equals(prefs.getPref(FPref.UI_CURRENT_AI_PROFILE))) { return; }
|
||||
|
||||
prefs.setPref(FPref.UI_CURRENT_AI_PROFILE, name);
|
||||
prefs.save();
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see forge.gui.framework.ICDoc#getCommandOnSelect()
|
||||
*/
|
||||
@Override
|
||||
public Command getCommandOnSelect() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
package forge.gui.home.settings;
|
||||
|
||||
import java.awt.event.ItemEvent;
|
||||
import java.awt.event.ItemListener;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.io.File;
|
||||
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.apache.commons.lang3.text.WordUtils;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import forge.Command;
|
||||
import forge.Constant.Preferences;
|
||||
import forge.Singletons;
|
||||
import forge.control.FControl.Screens;
|
||||
import forge.control.RestartUtil;
|
||||
import forge.game.ai.AiProfileUtil;
|
||||
import forge.gui.framework.ICDoc;
|
||||
import forge.gui.framework.SLayoutIO;
|
||||
import forge.gui.toolbox.FSkin;
|
||||
import forge.properties.ForgePreferences;
|
||||
import forge.properties.ForgePreferences.FPref;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Controls the preferences submenu in the home UI.
|
||||
*
|
||||
* <br><br><i>(C at beginning of class name denotes a control class.)</i>
|
||||
*
|
||||
*/
|
||||
public enum CSubmenuPreferences implements ICDoc {
|
||||
/** */
|
||||
SINGLETON_INSTANCE;
|
||||
|
||||
|
||||
private final List<Pair<JCheckBox, FPref>> lstControls = new ArrayList<Pair<JCheckBox,FPref>>();
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see forge.control.home.IControlSubmenu#update()
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
@Override
|
||||
public void initialize() {
|
||||
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
||||
final ForgePreferences prefs = Singletons.getModel().getPreferences();
|
||||
|
||||
view.getLstChooseSkin().addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(final MouseEvent e) {
|
||||
updateSkin();
|
||||
}
|
||||
});
|
||||
|
||||
view.getLstChooseAIProfile().addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(final MouseEvent e) {
|
||||
updateAIProfile();
|
||||
}
|
||||
});
|
||||
|
||||
// This updates variable right now and is not standard
|
||||
view.getCbDevMode().addItemListener(new ItemListener() {
|
||||
@Override
|
||||
public void itemStateChanged(final ItemEvent arg0) {
|
||||
final boolean toggle = view.getCbDevMode().isSelected();
|
||||
prefs.setPref(FPref.DEV_MODE_ENABLED, String.valueOf(toggle));
|
||||
Preferences.DEV_MODE = toggle;
|
||||
prefs.save();
|
||||
}
|
||||
});
|
||||
|
||||
lstControls.clear(); // just in case
|
||||
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.getCbManaBurn(), FPref.UI_MANABURN));
|
||||
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.getCbCloneImgSource(), FPref.UI_CLONE_MODE_SOURCE));
|
||||
lstControls.add(Pair.of(view.getCbRemoveSmall(), FPref.DECKGEN_NOSMALL));
|
||||
lstControls.add(Pair.of(view.getCbRemoveArtifacts(), FPref.DECKGEN_ARTIFACTS));
|
||||
lstControls.add(Pair.of(view.getCbSingletons(), FPref.DECKGEN_SINGLETONS));
|
||||
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.getCbRandomFoil(), FPref.UI_RANDOM_FOIL));
|
||||
lstControls.add(Pair.of(view.getCbOverlayCardName(), FPref.UI_OVERLAY_CARD_NAME));
|
||||
lstControls.add(Pair.of(view.getCbOverlayCardPower(), FPref.UI_OVERLAY_CARD_POWER));
|
||||
lstControls.add(Pair.of(view.getCbOverlayCardManaCost(), FPref.UI_OVERLAY_CARD_MANA_COST));
|
||||
lstControls.add(Pair.of(view.getCbRandomizeArt(), FPref.UI_RANDOM_CARD_ART));
|
||||
lstControls.add(Pair.of(view.getCbEnableSounds(), FPref.UI_ENABLE_SOUNDS));
|
||||
lstControls.add(Pair.of(view.getCbAltSoundSystem(), FPref.UI_ALT_SOUND_SYSTEM));
|
||||
lstControls.add(Pair.of(view.getCbUiForTouchScreen(), FPref.UI_FOR_TOUCHSCREN));
|
||||
|
||||
for(final Pair<JCheckBox, FPref> kv : lstControls) {
|
||||
kv.getKey().addItemListener(new ItemListener() {
|
||||
@Override
|
||||
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() {
|
||||
ForgePreferences prefs = Singletons.getModel().getPreferences();
|
||||
prefs.reset();
|
||||
prefs.save();
|
||||
update();
|
||||
}
|
||||
});
|
||||
|
||||
view.getBtnDeleteEditorUI().setCommand(new Command() {
|
||||
@Override
|
||||
public void run() {
|
||||
String fd = SLayoutIO.getFilePreferred(Screens.DECK_EDITOR_CONSTRUCTED);
|
||||
File f = new File(fd);
|
||||
f.delete();
|
||||
}
|
||||
});
|
||||
|
||||
view.getBtnDeleteMatchUI().setCommand(new Command() {
|
||||
@Override
|
||||
public void run() {
|
||||
String fd = SLayoutIO.getFilePreferred(Screens.MATCH_SCREEN);
|
||||
File f = new File(fd);
|
||||
f.delete();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see forge.control.home.IControlSubmenu#update()
|
||||
*/
|
||||
@Override
|
||||
public void update() {
|
||||
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
||||
final ForgePreferences prefs = Singletons.getModel().getPreferences();
|
||||
updateSkinNames();
|
||||
updateAIProfiles();
|
||||
|
||||
view.getCbDevMode().setSelected(prefs.getPrefBoolean(FPref.DEV_MODE_ENABLED));
|
||||
|
||||
for(Pair<JCheckBox, FPref> kv: lstControls) {
|
||||
kv.getKey().setSelected(prefs.getPrefBoolean(kv.getValue()));
|
||||
}
|
||||
view.reloadShortcuts();
|
||||
|
||||
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);
|
||||
final String[] prettyNames = new String[uglyNames.length];
|
||||
final String currentName = Singletons.getModel().getPreferences().getPref(FPref.UI_SKIN);
|
||||
int currentIndex = 0;
|
||||
|
||||
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());
|
||||
}
|
||||
|
||||
private void updateAIProfiles() {
|
||||
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
||||
final List<String> profileNames = AiProfileUtil.getProfilesDisplayList();
|
||||
final String currentName = Singletons.getModel().getPreferences().getPref(FPref.UI_CURRENT_AI_PROFILE);
|
||||
int currentIndex = 0;
|
||||
|
||||
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());
|
||||
}
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
private void updateSkin() {
|
||||
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
||||
final String name = view.getLstChooseSkin().getSelectedValue().toString();
|
||||
final ForgePreferences prefs = Singletons.getModel().getPreferences();
|
||||
if (name.equals(prefs.getPref(FPref.UI_SKIN))) { return; }
|
||||
|
||||
view.getScrChooseSkin().setVisible(false);
|
||||
view.getLblChooseSkin().setText("Please restart Forge (click here to close).");
|
||||
view.getLblChooseSkin().setHoverable(true);
|
||||
view.getLblChooseSkin().setCommand(new Command() { @Override
|
||||
public void run() { RestartUtil.restartApplication(null); } });
|
||||
|
||||
prefs.setPref(FPref.UI_SKIN, name);
|
||||
prefs.save();
|
||||
}
|
||||
|
||||
private void updateAIProfile() {
|
||||
final VSubmenuPreferences view = VSubmenuPreferences.SINGLETON_INSTANCE;
|
||||
final String name = view.getLstChooseAIProfile().getSelectedValue().toString();
|
||||
final ForgePreferences prefs = Singletons.getModel().getPreferences();
|
||||
if (name.equals(prefs.getPref(FPref.UI_CURRENT_AI_PROFILE))) { return; }
|
||||
|
||||
prefs.setPref(FPref.UI_CURRENT_AI_PROFILE, name);
|
||||
prefs.save();
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see forge.gui.framework.ICDoc#getCommandOnSelect()
|
||||
*/
|
||||
@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_SMOOTH_LAND ("false"),
|
||||
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_SCALE_LARGER ("true"),
|
||||
UI_MAX_STACK ("3"),
|
||||
|
||||
@@ -125,7 +125,6 @@ public class CardPanel extends JPanel implements CardContainer {
|
||||
private boolean isAnimationPanel;
|
||||
private int cardXOffset, cardYOffset, cardWidth, cardHeight;
|
||||
private boolean isSelected;
|
||||
private boolean showCastingCost;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -281,18 +280,6 @@ public class CardPanel extends JPanel implements CardContainer {
|
||||
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} */
|
||||
@Override
|
||||
public final void paint(final Graphics g) {
|
||||
@@ -361,7 +348,7 @@ public class CardPanel extends JPanel implements CardContainer {
|
||||
int height = CardFaceSymbols.getHeight();
|
||||
CardFaceSymbols.draw(g, cost, (this.cardXOffset + (this.cardWidth / 2)) - (width / 2), deltaY + this.cardYOffset + (this.cardHeight / 2) - height/2);
|
||||
}
|
||||
|
||||
|
||||
/** {@inheritDoc} */
|
||||
@Override
|
||||
protected final void paintChildren(final Graphics g) {
|
||||
@@ -371,7 +358,7 @@ public class CardPanel extends JPanel implements CardContainer {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.showCastingCost && this.cardWidth < 200) {
|
||||
if (showCardManaCostOverlay() && this.cardWidth < 200) {
|
||||
Card gameCard = this.getGameCard();
|
||||
boolean showSplitMana = gameCard.isSplitCard() && gameCard.getCurState() == CardCharacteristicName.Original;
|
||||
if ( !showSplitMana ) {
|
||||
@@ -593,34 +580,37 @@ public class CardPanel extends JPanel implements CardContainer {
|
||||
* a {@link forge.Card} object.
|
||||
*/
|
||||
public final void setText(final Card card) {
|
||||
if ((card == null) || !Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CARD_OVERLAY)) {
|
||||
|
||||
if ((card == null)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (card.isFaceDown()) {
|
||||
this.titleText.setText("");
|
||||
this.showCastingCost = false;
|
||||
} else {
|
||||
this.titleText.setText(card.getName());
|
||||
this.showCastingCost = true;
|
||||
if (showCardNameOverlay()) {
|
||||
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();
|
||||
this.damageText.setText(damage > 0 ? "\u00BB " + String.valueOf(damage) + " \u00AB" : "");
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 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());
|
||||
if ((this.getGameCard() != null) && Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CARD_OVERLAY)) {
|
||||
this.setText(this.getGameCard());
|
||||
}
|
||||
this.setText(this.getGameCard());
|
||||
|
||||
this.setImage(image);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the game card.
|
||||
*
|
||||
@@ -775,4 +763,22 @@ public class CardPanel extends JPanel implements CardContainer {
|
||||
public static final float getBorderSize() {
|
||||
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