*Unified variant deck editor initial commit (Does not work 100% yet)

This commit is contained in:
Hellfish
2013-01-23 07:20:42 +00:00
parent 5ed34dbde4
commit 753ff18d5d
4 changed files with 63 additions and 18 deletions

2
.gitattributes vendored
View File

@@ -13739,7 +13739,7 @@ src/main/java/forge/gui/deckeditor/controllers/CEditorLimited.java -text
src/main/java/forge/gui/deckeditor/controllers/CEditorPreferences.java -text
src/main/java/forge/gui/deckeditor/controllers/CEditorQuest.java svneol=native#text/plain
src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java -text
src/main/java/forge/gui/deckeditor/controllers/CEditorScheme.java -text
src/main/java/forge/gui/deckeditor/controllers/CEditorVariant.java -text
src/main/java/forge/gui/deckeditor/controllers/CFilters.java -text
src/main/java/forge/gui/deckeditor/controllers/CProbabilities.java -text
src/main/java/forge/gui/deckeditor/controllers/CStatistics.java -text

View File

@@ -17,10 +17,12 @@
*/
package forge.gui.deckeditor.controllers;
import java.util.ArrayList;
import java.util.List;
import com.google.common.base.Predicate;
import com.google.common.base.Supplier;
import com.google.common.collect.Iterables;
import forge.Singletons;
import forge.deck.Deck;
import forge.gui.deckeditor.SEditorIO;
@@ -38,6 +40,7 @@ import forge.item.CardPrinted;
import forge.item.InventoryItem;
import forge.item.ItemPool;
import forge.properties.ForgePreferences.FPref;
import forge.util.IStorage;
/**
* Child controller for constructed deck editor UI.
@@ -49,8 +52,10 @@ import forge.properties.ForgePreferences.FPref;
* @author Forge
* @version $Id: CEditorConstructed.java 18430 2012-11-27 22:42:36Z Hellfish $
*/
public final class CEditorScheme extends ACEditorBase<CardPrinted, Deck> {
public final class CEditorVariant extends ACEditorBase<CardPrinted, Deck> {
private final DeckController<Deck> controller;
private final Predicate<CardPrinted> cardPoolCondition;
private final EDocID exitToScreen;
//=========== Constructor
/**
@@ -58,9 +63,12 @@ public final class CEditorScheme extends ACEditorBase<CardPrinted, Deck> {
* This is the least restrictive mode;
* all cards are available.
*/
public CEditorScheme() {
public CEditorVariant(final IStorage<Deck> folder, final Predicate<CardPrinted> poolCondition, final EDocID exitTo) {
super();
cardPoolCondition = poolCondition;
exitToScreen = exitTo;
final EditorTableView<CardPrinted> tblCatalog = new EditorTableView<CardPrinted>(true, CardPrinted.class);
final EditorTableView<CardPrinted> tblDeck = new EditorTableView<CardPrinted>(true, CardPrinted.class);
@@ -76,7 +84,7 @@ public final class CEditorScheme extends ACEditorBase<CardPrinted, Deck> {
return new Deck();
}
};
this.controller = new DeckController<Deck>(Singletons.getModel().getDecks().getScheme(), this, newCreator);
this.controller = new DeckController<Deck>(folder, this, newCreator);
}
//=========== Overridden from ACEditorBase
@@ -120,12 +128,11 @@ public final class CEditorScheme extends ACEditorBase<CardPrinted, Deck> {
*/
@Override
public void resetTables() {
List<CardPrinted> schemes = new ArrayList<CardPrinted>();
for(CardPrinted cp : CardDb.instance().getAllNonTraditionalCards()) {
if ( cp.getCard().getType().isScheme() )
schemes.add(cp);
}
this.getTableCatalog().setDeck(ItemPool.createFrom(schemes, CardPrinted.class));
Iterable<CardPrinted> allNT = CardDb.instance().getAllNonTraditionalCards();
allNT = Iterables.filter(allNT, cardPoolCondition);
this.getTableCatalog().setDeck(ItemPool.createFrom(allNT, CardPrinted.class));
this.getTableDeck().setDeck(this.controller.getModel().getSideboard());
}
@@ -161,7 +168,7 @@ public final class CEditorScheme extends ACEditorBase<CardPrinted, Deck> {
@Override
public boolean exit() {
// Override the submenu save choice - tell it to go to "constructed".
Singletons.getModel().getPreferences().setPref(FPref.SUBMENU_CURRENTMENU, EDocID.HOME_ARCHENEMY.toString());
Singletons.getModel().getPreferences().setPref(FPref.SUBMENU_CURRENTMENU, exitToScreen.toString());
return SEditorIO.confirmSaveChanges();
}

View File

@@ -7,6 +7,8 @@ import java.util.List;
import javax.swing.SwingUtilities;
import javax.swing.SwingWorker;
import com.google.common.base.Predicate;
import forge.Command;
import forge.GameActionUtil;
import forge.Singletons;
@@ -21,7 +23,8 @@ import forge.game.player.LobbyPlayer;
import forge.game.player.PlayerType;
import forge.gui.SOverlayUtils;
import forge.gui.deckeditor.CDeckEditorUI;
import forge.gui.deckeditor.controllers.CEditorScheme;
import forge.gui.deckeditor.controllers.CEditorVariant;
import forge.gui.framework.EDocID;
import forge.gui.framework.ICDoc;
import forge.gui.toolbox.FDeckChooser;
import forge.item.CardPrinted;
@@ -60,7 +63,22 @@ public enum CSubmenuArchenemy implements ICDoc {
@Override
public void execute() {
CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(new CEditorScheme());
Predicate<CardPrinted> predSchemes = new Predicate<CardPrinted>() {
@Override
public boolean apply(CardPrinted arg0) {
if(arg0.getCard().getType().isScheme())
{
return true;
}
return false;
}
};
CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(new CEditorVariant(Singletons.getModel().getDecks().getScheme(),predSchemes,EDocID.HOME_ARCHENEMY));
FControl.SINGLETON_INSTANCE.changeState(FControl.DECK_EDITOR_CONSTRUCTED);
}
});

View File

@@ -7,9 +7,12 @@ import java.util.List;
import javax.swing.SwingUtilities;
import javax.swing.SwingWorker;
import com.google.common.base.Predicate;
import forge.Command;
import forge.GameActionUtil;
import forge.Singletons;
import forge.control.FControl;
import forge.control.Lobby;
import forge.deck.Deck;
import forge.deck.DeckgenUtil;
@@ -19,6 +22,9 @@ import forge.game.MatchStartHelper;
import forge.game.player.LobbyPlayer;
import forge.game.player.PlayerType;
import forge.gui.SOverlayUtils;
import forge.gui.deckeditor.CDeckEditorUI;
import forge.gui.deckeditor.controllers.CEditorVariant;
import forge.gui.framework.EDocID;
import forge.gui.framework.ICDoc;
import forge.gui.toolbox.FDeckChooser;
import forge.item.CardPrinted;
@@ -57,9 +63,23 @@ public enum CSubmenuPlanechase implements ICDoc {
@Override
public void execute() {
//TODO:Enter Planar deck editor here!
//CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(new CEditorScheme());
//FControl.SINGLETON_INSTANCE.changeState(FControl.DECK_EDITOR_CONSTRUCTED);
Predicate<CardPrinted> predPlanes = new Predicate<CardPrinted>() {
@Override
public boolean apply(CardPrinted arg0) {
if(arg0.getCard().getType().isPlane() || arg0.getCard().getType().isPhenomenon())
{
return true;
}
return false;
}
};
CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(new CEditorVariant(Singletons.getModel().getDecks().getPlane(),predPlanes,EDocID.HOME_PLANECHASE));
FControl.SINGLETON_INSTANCE.changeState(FControl.DECK_EDITOR_CONSTRUCTED);
}
});