mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
- Integrating foil card filter by Seravy.
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -900,6 +900,7 @@ forge-gui-desktop/src/main/java/forge/itemmanager/filters/AdvancedSearchFilter.j
|
|||||||
forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardCMCFilter.java -text
|
forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardCMCFilter.java -text
|
||||||
forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardCMCRangeFilter.java -text
|
forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardCMCRangeFilter.java -text
|
||||||
forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardColorFilter.java -text
|
forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardColorFilter.java -text
|
||||||
|
forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardFoilFilter.java -text
|
||||||
forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardFormatFilter.java -text
|
forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardFormatFilter.java -text
|
||||||
forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardPowerFilter.java -text
|
forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardPowerFilter.java -text
|
||||||
forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardQuestWorldFilter.java -text
|
forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardQuestWorldFilter.java -text
|
||||||
|
|||||||
@@ -157,6 +157,15 @@ public class CardManager extends ItemManager<PaperCard> {
|
|||||||
|
|
||||||
GuiUtils.addSeparator(menu);
|
GuiUtils.addSeparator(menu);
|
||||||
|
|
||||||
|
GuiUtils.addMenuItem(menu, "Foil", null, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
itemManager.addFilter(new CardFoilFilter(itemManager));
|
||||||
|
}
|
||||||
|
}, itemManager.getFilter(CardFoilFilter.class) == null);
|
||||||
|
|
||||||
|
GuiUtils.addSeparator(menu);
|
||||||
|
|
||||||
GuiUtils.addMenuItem(menu, "Advanced...", null, new Runnable() {
|
GuiUtils.addMenuItem(menu, "Advanced...", null, new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package forge.itemmanager.filters;
|
||||||
|
|
||||||
|
import com.google.common.base.Predicate;
|
||||||
|
|
||||||
|
import forge.item.PaperCard;
|
||||||
|
import forge.itemmanager.ItemManager;
|
||||||
|
import forge.itemmanager.SFilterUtil;
|
||||||
|
import forge.itemmanager.SpellShopManager;
|
||||||
|
import forge.itemmanager.SItemManagerUtil.StatTypes;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
|
||||||
|
|
||||||
|
public class CardFoilFilter extends StatTypeFilter<PaperCard> {
|
||||||
|
public CardFoilFilter(ItemManager<? super PaperCard> itemManager0) {
|
||||||
|
super(itemManager0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemFilter<PaperCard> createCopy() {
|
||||||
|
return new CardFoilFilter(itemManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void buildWidget(JPanel widget) {
|
||||||
|
/* if (itemManager instanceof SpellShopManager) {
|
||||||
|
addToggleButton(widget, StatTypes.PACK_OR_DECK);
|
||||||
|
}*/
|
||||||
|
addToggleButton(widget, StatTypes.FOIL_OLD);
|
||||||
|
addToggleButton(widget, StatTypes.FOIL_NEW);
|
||||||
|
addToggleButton(widget, StatTypes.FOIL_NONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected final Predicate<PaperCard> buildPredicate() {
|
||||||
|
return SFilterUtil.buildFoilFilter(buttonMap);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,6 +3,8 @@ package forge.itemmanager;
|
|||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
import com.google.common.base.Predicates;
|
import com.google.common.base.Predicates;
|
||||||
|
|
||||||
|
import forge.StaticData;
|
||||||
|
import forge.card.CardEdition;
|
||||||
import forge.card.CardRules;
|
import forge.card.CardRules;
|
||||||
import forge.card.CardRulesPredicates;
|
import forge.card.CardRulesPredicates;
|
||||||
import forge.card.ColorSet;
|
import forge.card.ColorSet;
|
||||||
@@ -95,7 +97,7 @@ public class SFilterUtil {
|
|||||||
case '\\':
|
case '\\':
|
||||||
if (i < text.length() - 1 && text.charAt(i + 1) == '"') {
|
if (i < text.length() - 1 && text.charAt(i + 1) == '"') {
|
||||||
ch = '"'; //allow appending escaped quotation character
|
ch = '"'; //allow appending escaped quotation character
|
||||||
i++; //prevent chaging inQuotes for that character
|
i++; //prevent changing inQuotes for that character
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ',':
|
case ',':
|
||||||
@@ -139,6 +141,38 @@ public class SFilterUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Predicate<PaperCard> buildFoilFilter(Map<SItemManagerUtil.StatTypes, ? extends IButton> buttonMap) {
|
||||||
|
|
||||||
|
// final Map<StatTypes, ? extends IButton> buttonMap2 =buttonMap;
|
||||||
|
final int Foil = (((buttonMap.get(StatTypes.FOIL_OLD).isSelected()) ? 1 : 0) +
|
||||||
|
((buttonMap.get(StatTypes.FOIL_NEW).isSelected()) ? 2 : 0) +
|
||||||
|
((buttonMap.get(StatTypes.FOIL_NONE).isSelected()) ? 4 : 0));
|
||||||
|
|
||||||
|
return new Predicate<PaperCard>() {
|
||||||
|
@Override
|
||||||
|
public boolean apply(PaperCard card) {
|
||||||
|
|
||||||
|
|
||||||
|
boolean result=false;
|
||||||
|
|
||||||
|
CardEdition edition = StaticData.instance().getEditions().get(card.getEdition());
|
||||||
|
if ((Foil & 1)==1) {
|
||||||
|
// Old Style Foil
|
||||||
|
if (edition.getFoilType()==CardEdition.FoilType.OLD_STYLE) {result=result || card.isFoil();}
|
||||||
|
}
|
||||||
|
if ((Foil & 2)==2) {
|
||||||
|
// New Style Foil
|
||||||
|
if (edition.getFoilType()==CardEdition.FoilType.MODERN) {result=result || card.isFoil();}
|
||||||
|
}
|
||||||
|
if ((Foil & 4)==4)
|
||||||
|
{ result=result || !card.isFoil(); }
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public static Predicate<PaperCard> buildColorFilter(Map<SItemManagerUtil.StatTypes, ? extends IButton> buttonMap) {
|
public static Predicate<PaperCard> buildColorFilter(Map<SItemManagerUtil.StatTypes, ? extends IButton> buttonMap) {
|
||||||
byte colors0 = 0;
|
byte colors0 = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -60,7 +60,12 @@ public final class SItemManagerUtil {
|
|||||||
DECK_RED (FSkinProp.IMG_MANA_R, null, "Red decks"),
|
DECK_RED (FSkinProp.IMG_MANA_R, null, "Red decks"),
|
||||||
DECK_GREEN (FSkinProp.IMG_MANA_G, null, "Green decks"),
|
DECK_GREEN (FSkinProp.IMG_MANA_G, null, "Green decks"),
|
||||||
DECK_COLORLESS (FSkinProp.IMG_MANA_COLORLESS, null, "Colorless decks"),
|
DECK_COLORLESS (FSkinProp.IMG_MANA_COLORLESS, null, "Colorless decks"),
|
||||||
DECK_MULTICOLOR (FSkinProp.IMG_MULTI, null, "Multicolor decks");
|
DECK_MULTICOLOR (FSkinProp.IMG_MULTI, null, "Multicolor decks"),
|
||||||
|
|
||||||
|
FOIL_OLD (FSkinProp.FOIL_11, null, "Old style Foil cards"),
|
||||||
|
FOIL_NEW (FSkinProp.FOIL_01, null, "New style Foil cards"),
|
||||||
|
FOIL_NONE (FSkinProp.ICO_CLOSE, null, "non-Foil cards");
|
||||||
|
|
||||||
|
|
||||||
public final FSkinProp skinProp;
|
public final FSkinProp skinProp;
|
||||||
public final Predicate<CardRules> predicate;
|
public final Predicate<CardRules> predicate;
|
||||||
|
|||||||
Reference in New Issue
Block a user