mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +00:00
[Mobile] preload ItemPool and fix Planar Conquest new game
This commit is contained in:
@@ -282,7 +282,10 @@ public final class CardDb implements ICardDatabase, IDeckGenPool {
|
||||
private void reIndex() {
|
||||
uniqueCardsByName.clear();
|
||||
for (Entry<String, Collection<PaperCard>> kv : getAllCardsByName().asMap().entrySet()) {
|
||||
uniqueCardsByName.put(kv.getKey(), getFirstWithImage(kv.getValue()));
|
||||
PaperCard pc = getFirstWithImage(kv.getValue());
|
||||
if (!loadNonLegalCards && (editions.get(pc.getEdition()).getType() == CardEdition.Type.FUNNY || editions.get(pc.getEdition()).getBorderColor() == CardEdition.BorderColor.SILVER))
|
||||
continue;
|
||||
uniqueCardsByName.put(kv.getKey(), pc);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,6 @@ import forge.assets.FSkinImage;
|
||||
import forge.assets.FTextureRegionImage;
|
||||
import forge.card.CardDb;
|
||||
import forge.card.CardEdition;
|
||||
import forge.card.CardRulesPredicates;
|
||||
import forge.deck.io.DeckPreferences;
|
||||
import forge.gamemodes.limited.BoosterDraft;
|
||||
import forge.gamemodes.planarconquest.ConquestUtil;
|
||||
@@ -1085,10 +1084,10 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
||||
final Localizer localizer = Localizer.getInstance();
|
||||
switch (editorType) {
|
||||
case Archenemy:
|
||||
cardManager.setPool(ItemPool.createFrom(FModel.getMagicDb().getVariantCards().getAllCards(Predicates.compose(CardRulesPredicates.Presets.IS_SCHEME, PaperCard.FN_GET_RULES)), PaperCard.class), true);
|
||||
cardManager.setPool(FModel.getArchenemyCards(), true);
|
||||
break;
|
||||
case Planechase:
|
||||
cardManager.setPool(ItemPool.createFrom(FModel.getMagicDb().getVariantCards().getAllCards(Predicates.compose(CardRulesPredicates.Presets.IS_PLANE_OR_PHENOMENON, PaperCard.FN_GET_RULES)), PaperCard.class), true);
|
||||
cardManager.setPool(FModel.getPlanechaseCards(), true);
|
||||
break;
|
||||
case Quest:
|
||||
final ItemPool<PaperCard> questPool = new ItemPool<>(PaperCard.class);
|
||||
@@ -1156,10 +1155,10 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
||||
// fall through to below
|
||||
default:
|
||||
if (cardManager.getWantUnique()) {
|
||||
cardManager.setPool(editorType.applyCardFilter(ItemPool.createFrom(FModel.getMagicDb().getCommonCards().getUniqueCardsNoAlt(), PaperCard.class), additionalFilter), true);
|
||||
cardManager.setPool(editorType.applyCardFilter(FModel.getUniqueCardsNoAlt(), additionalFilter), true);
|
||||
}
|
||||
else {
|
||||
cardManager.setPool(editorType.applyCardFilter(ItemPool.createFrom(FModel.getMagicDb().getCommonCards().getAllCardsNoAlt(), PaperCard.class), additionalFilter), true);
|
||||
cardManager.setPool(editorType.applyCardFilter(FModel.getAllCardsNoAlt(), additionalFilter), true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -187,7 +187,7 @@ public class ConquestUtil {
|
||||
public static Iterable<PaperCard> getStartingPlaneswalkerOptions(final PaperCard startingCommander) {
|
||||
final byte colorIdentity = startingCommander.getRules().getColorIdentity().getColor();
|
||||
final List<String> selected = Lists.newArrayList();
|
||||
return Iterables.filter(FModel.getMagicDb().getCommonCards(), new Predicate<PaperCard>() {
|
||||
return Iterables.filter(FModel.getMagicDb().getCommonCards().getUniqueCards(), new Predicate<PaperCard>() {
|
||||
@Override
|
||||
public boolean apply(PaperCard card) {
|
||||
if (FModel.getMagicDb().getEditions().get(card.getEdition()).getType() == CardEdition.Type.PROMOS
|
||||
|
||||
@@ -23,6 +23,7 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
import com.google.common.base.Predicates;
|
||||
import com.google.common.collect.Maps;
|
||||
|
||||
import forge.CardStorageReader;
|
||||
@@ -31,6 +32,7 @@ import forge.ImageKeys;
|
||||
import forge.MulliganDefs;
|
||||
import forge.StaticData;
|
||||
import forge.ai.AiProfileUtil;
|
||||
import forge.card.CardRulesPredicates;
|
||||
import forge.card.CardType;
|
||||
import forge.deck.CardArchetypeLDAGenerator;
|
||||
import forge.deck.CardRelationMatrixGenerator;
|
||||
@@ -55,6 +57,7 @@ import forge.gui.FThreads;
|
||||
import forge.gui.GuiBase;
|
||||
import forge.gui.card.CardPreferences;
|
||||
import forge.gui.interfaces.IProgressBar;
|
||||
import forge.item.PaperCard;
|
||||
import forge.itemmanager.ItemManagerConfig;
|
||||
import forge.localinstance.achievements.AchievementCollection;
|
||||
import forge.localinstance.achievements.ConstructedAchievements;
|
||||
@@ -69,6 +72,7 @@ import forge.localinstance.properties.ForgePreferences.FPref;
|
||||
import forge.player.GamePlayerUtil;
|
||||
import forge.util.CardTranslation;
|
||||
import forge.util.FileUtil;
|
||||
import forge.util.ItemPool;
|
||||
import forge.util.Lang;
|
||||
import forge.util.Localizer;
|
||||
import forge.util.storage.IStorage;
|
||||
@@ -109,6 +113,7 @@ public final class FModel {
|
||||
private static IStorage<ConquestPlane> planes;
|
||||
private static IStorage<QuestWorld> worlds;
|
||||
private static GameFormat.Collection formats;
|
||||
private static ItemPool<PaperCard> uniqueCardsNoAlt, allCardsNoAlt, planechaseCards, archenemyCards;
|
||||
|
||||
public static void initialize(final IProgressBar progressBar, Function<ForgePreferences, Void> adjustPrefs) {
|
||||
//init version to log
|
||||
@@ -270,6 +275,12 @@ public final class FModel {
|
||||
deckGenMatrixLoaded=false;
|
||||
}
|
||||
}
|
||||
|
||||
//preload Itempool
|
||||
uniqueCardsNoAlt = ItemPool.createFrom(getMagicDb().getCommonCards().getUniqueCardsNoAlt(), PaperCard.class);
|
||||
allCardsNoAlt = ItemPool.createFrom(getMagicDb().getCommonCards().getAllCardsNoAlt(), PaperCard.class);
|
||||
archenemyCards = ItemPool.createFrom(getMagicDb().getVariantCards().getAllCards(Predicates.compose(CardRulesPredicates.Presets.IS_SCHEME, PaperCard.FN_GET_RULES)), PaperCard.class);
|
||||
planechaseCards = ItemPool.createFrom(FModel.getMagicDb().getVariantCards().getAllCards(Predicates.compose(CardRulesPredicates.Presets.IS_PLANE_OR_PHENOMENON, PaperCard.FN_GET_RULES)), PaperCard.class);
|
||||
}
|
||||
|
||||
private static boolean deckGenMatrixLoaded=false;
|
||||
@@ -286,6 +297,22 @@ public final class FModel {
|
||||
return conquest;
|
||||
}
|
||||
|
||||
public static ItemPool<PaperCard> getUniqueCardsNoAlt() {
|
||||
return uniqueCardsNoAlt;
|
||||
}
|
||||
|
||||
public static ItemPool<PaperCard> getAllCardsNoAlt() {
|
||||
return allCardsNoAlt;
|
||||
}
|
||||
|
||||
public static ItemPool<PaperCard> getArchenemyCards() {
|
||||
return archenemyCards;
|
||||
}
|
||||
|
||||
public static ItemPool<PaperCard> getPlanechaseCards() {
|
||||
return planechaseCards;
|
||||
}
|
||||
|
||||
private static boolean keywordsLoaded = false;
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user