Merge remote-tracking branch 'core/master'

This commit is contained in:
Anthony Calosa
2022-02-28 15:19:15 +08:00
3 changed files with 51 additions and 1 deletions

View File

@@ -18,6 +18,7 @@
package forge.itemmanager;
import com.google.common.base.Function;
import com.google.common.collect.Iterables;
import forge.card.*;
import forge.card.mana.ManaCost;
import forge.deck.DeckProxy;
@@ -37,7 +38,9 @@ import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.HashSet;
import java.util.Map.Entry;
import java.util.Set;
public enum ColumnDef {
/**
@@ -255,6 +258,47 @@ public enum ColumnDef {
: (ai.getRemRandomDecks() ? "?" : "");
}
}),
/**
* The card format column.
*/
FORMAT("lblFormat", "ttFormats", 60, false, SortState.DESC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
PaperCard card = toPaperCard(from.getKey());
if (card == null) {
return -1;
}
Iterable<GameFormat> formats = FModel.getFormats().getAllFormatsOfCard(card);
int acc = 0;
for (GameFormat gf : formats) {
if (!gf.getFormatType().equals(GameFormat.FormatType.SANCTIONED)) {
continue;
}
int ix = gf.getIndex();
if (ix < 30 && ix > 0)
acc |= 0x40000000 >> (ix - 1);
}
return acc;
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
PaperCard card = toPaperCard(from.getKey());
if (card == null) {
return -1;
}
Iterable<GameFormat> formats = FModel.getFormats().getAllFormatsOfCard(card);
Set<GameFormat> sanctioned = new HashSet<>();
for (GameFormat gf : formats) {
if (gf.getFormatType().equals(GameFormat.FormatType.SANCTIONED)) {
sanctioned.add(gf);
}
}
return StringUtils.join(Iterables.transform(sanctioned, GameFormat.FN_GET_NAME), ", ");
}
}),
/**
* The Draft ranking column.
*/
@@ -550,6 +594,10 @@ public enum ColumnDef {
return i instanceof IPaperCard ? ((IPaperCard) i) : null;
}
private static PaperCard toPaperCard(final InventoryItem i) {
return i instanceof PaperCard ? ((PaperCard) i) : null;
}
private static ManaCost toManaCost(final InventoryItem i) {
return i instanceof IPaperCard ? ((IPaperCard) i).getRules().getManaCost() : ManaCost.NO_COST;
}

View File

@@ -84,12 +84,14 @@ public final class SColumnUtil {
colDefs.add(ColumnDef.CMC);
colDefs.add(ColumnDef.RARITY);
colDefs.add(ColumnDef.SET);
colDefs.add(ColumnDef.FORMAT);
colDefs.add(ColumnDef.AI);
colDefs.add(ColumnDef.RANKING);
colDefs.add(ColumnDef.COLLECTOR_ORDER);
Map<ColumnDef, ItemColumnConfig> columns = getColumns(colDefs);
columns.get(ColumnDef.AI).setVisible(false);
columns.get(ColumnDef.FORMAT).setVisible(false);
columns.get(ColumnDef.RANKING).setVisible(false);
return columns;
}

View File

@@ -169,7 +169,7 @@ public final class SItemManagerUtil {
private static final GroupDef[] DECK_GROUPBY_OPTIONS = {GroupDef.COLOR, GroupDef.COLOR_IDENTITY, GroupDef.SET};
private static final ColumnDef[] CARD_PILEBY_OPTIONS = {ColumnDef.CMC, ColumnDef.COLOR, ColumnDef.NAME,
ColumnDef.COST, ColumnDef.TYPE, ColumnDef.RARITY,
ColumnDef.SET, ColumnDef.COLLECTOR_ORDER};
ColumnDef.SET, ColumnDef.COLLECTOR_ORDER, ColumnDef.FORMAT};
private static final ColumnDef[] DECK_PILEBY_OPTIONS = {ColumnDef.DECK_COLOR, ColumnDef.DECK_FOLDER,
ColumnDef.NAME, ColumnDef.DECK_FORMAT,
ColumnDef.DECK_EDITION, ColumnDef.DECK_AI};