mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Add Collection screen for Planar Conquest
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
package forge.screens.planarconquest;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
|
||||
import forge.item.PaperCard;
|
||||
import forge.itemmanager.CardManager;
|
||||
import forge.itemmanager.ItemManager;
|
||||
import forge.itemmanager.ItemManagerConfig;
|
||||
import forge.itemmanager.filters.CardColorFilter;
|
||||
import forge.itemmanager.filters.CardTypeFilter;
|
||||
import forge.itemmanager.filters.ComboBoxFilter;
|
||||
import forge.itemmanager.filters.ItemFilter;
|
||||
import forge.model.FModel;
|
||||
import forge.planarconquest.ConquestData;
|
||||
import forge.planarconquest.ConquestPlane;
|
||||
import forge.screens.FScreen;
|
||||
|
||||
public class ConquestCollectionScreen extends FScreen {
|
||||
private final CollectionManager lstCollection = add(new CollectionManager());
|
||||
|
||||
public ConquestCollectionScreen() {
|
||||
super("", ConquestMenu.getMenu());
|
||||
|
||||
ConquestData model = FModel.getConquest().getModel();
|
||||
ItemManagerConfig config = ItemManagerConfig.CONQUEST_COLLECTION;
|
||||
lstCollection.setup(config, model.getColOverrides(config));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivate() {
|
||||
setHeaderCaption(FModel.getConquest().getName());
|
||||
refreshCards();
|
||||
}
|
||||
|
||||
public void refreshCards() {
|
||||
FModel.getConquest().getModel().populateCollectionManager(lstCollection);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doLayout(float startY, float width, float height) {
|
||||
float x = ItemFilter.PADDING;
|
||||
float w = width - 2 * x;
|
||||
lstCollection.setBounds(x, startY, w, height - startY - ItemFilter.PADDING);
|
||||
}
|
||||
|
||||
private static class CollectionManager extends CardManager {
|
||||
public CollectionManager() {
|
||||
super(false);
|
||||
setCaption("Collection");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void addDefaultFilters() {
|
||||
addFilter(new CardColorFilter(this));
|
||||
addFilter(new CardOriginFilter(this));
|
||||
addFilter(new CardTypeFilter(this));
|
||||
}
|
||||
}
|
||||
|
||||
private static class CardOriginFilter extends ComboBoxFilter<PaperCard, ConquestPlane> {
|
||||
public CardOriginFilter(ItemManager<? super PaperCard> itemManager0) {
|
||||
super("All Planes", ConquestPlane.values(), itemManager0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemFilter<PaperCard> createCopy() {
|
||||
CardOriginFilter copy = new CardOriginFilter(itemManager);
|
||||
copy.filterValue = filterValue;
|
||||
return copy;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Predicate<PaperCard> buildPredicate() {
|
||||
return new Predicate<PaperCard>() {
|
||||
@Override
|
||||
public boolean apply(PaperCard input) {
|
||||
if (filterValue == null) {
|
||||
return true;
|
||||
}
|
||||
return filterValue.getCardPool().contains(input);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
package forge.screens.planarconquest;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import forge.deck.DeckProxy;
|
||||
@@ -11,7 +10,6 @@ import forge.itemmanager.ItemColumn;
|
||||
import forge.itemmanager.ItemManagerConfig;
|
||||
import forge.model.FModel;
|
||||
import forge.planarconquest.ConquestCommander;
|
||||
import forge.planarconquest.ConquestData;
|
||||
|
||||
public class ConquestDeckEditor extends FDeckEditor {
|
||||
public ConquestDeckEditor(ConquestCommander commander) {
|
||||
@@ -36,10 +34,6 @@ public class ConquestDeckEditor extends FDeckEditor {
|
||||
|
||||
@Override
|
||||
protected Map<ColumnDef, ItemColumn> getColOverrides(ItemManagerConfig config) {
|
||||
ConquestData model = FModel.getConquest().getModel();
|
||||
Map<ColumnDef, ItemColumn> colOverrides = new HashMap<ColumnDef, ItemColumn>();
|
||||
ItemColumn.addColOverride(config, colOverrides, ColumnDef.NEW, model.fnNewCompare, model.fnNewGet);
|
||||
ItemColumn.addColOverride(config, colOverrides, ColumnDef.DECKS, model.fnDeckCompare, model.fnDeckGet);
|
||||
return colOverrides;
|
||||
return FModel.getConquest().getModel().getColOverrides(config);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ public class ConquestMenu extends FPopupMenu {
|
||||
private static final ConquestMenu conquestMenu = new ConquestMenu();
|
||||
private static final ConquestMapScreen mapScreen = new ConquestMapScreen();
|
||||
private static final ConquestCommandersScreen commandersScreen = new ConquestCommandersScreen();
|
||||
private static final ConquestCollectionScreen collectionScreen = new ConquestCollectionScreen();
|
||||
private static final ConquestPrefsScreen prefsScreen = new ConquestPrefsScreen();
|
||||
|
||||
private static final FMenuItem mapItem = new FMenuItem("Planar Map", FSkinImage.QUEST_MAP, new FEventHandler() {
|
||||
@@ -38,6 +39,12 @@ public class ConquestMenu extends FPopupMenu {
|
||||
Forge.openScreen(commandersScreen);
|
||||
}
|
||||
});
|
||||
private static final FMenuItem collectionItem = new FMenuItem("Collection", FSkinImage.QUEST_BOX, new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
Forge.openScreen(collectionScreen);
|
||||
}
|
||||
});
|
||||
private static final FMenuItem prefsItem = new FMenuItem("Preferences", FSkinImage.SETTINGS, new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
@@ -99,6 +106,7 @@ public class ConquestMenu extends FPopupMenu {
|
||||
FScreen currentScreen = Forge.getCurrentScreen();
|
||||
addItem(mapItem); mapItem.setSelected(currentScreen == mapScreen);
|
||||
addItem(commandersItem); commandersItem.setSelected(currentScreen == commandersScreen);
|
||||
addItem(collectionItem); collectionItem.setSelected(currentScreen == collectionScreen);
|
||||
addItem(prefsItem); prefsItem.setSelected(currentScreen == prefsScreen);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user