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() {
|
private void reIndex() {
|
||||||
uniqueCardsByName.clear();
|
uniqueCardsByName.clear();
|
||||||
for (Entry<String, Collection<PaperCard>> kv : getAllCardsByName().asMap().entrySet()) {
|
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.assets.FTextureRegionImage;
|
||||||
import forge.card.CardDb;
|
import forge.card.CardDb;
|
||||||
import forge.card.CardEdition;
|
import forge.card.CardEdition;
|
||||||
import forge.card.CardRulesPredicates;
|
|
||||||
import forge.deck.io.DeckPreferences;
|
import forge.deck.io.DeckPreferences;
|
||||||
import forge.gamemodes.limited.BoosterDraft;
|
import forge.gamemodes.limited.BoosterDraft;
|
||||||
import forge.gamemodes.planarconquest.ConquestUtil;
|
import forge.gamemodes.planarconquest.ConquestUtil;
|
||||||
@@ -1085,10 +1084,10 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
final Localizer localizer = Localizer.getInstance();
|
final Localizer localizer = Localizer.getInstance();
|
||||||
switch (editorType) {
|
switch (editorType) {
|
||||||
case Archenemy:
|
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;
|
break;
|
||||||
case Planechase:
|
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;
|
break;
|
||||||
case Quest:
|
case Quest:
|
||||||
final ItemPool<PaperCard> questPool = new ItemPool<>(PaperCard.class);
|
final ItemPool<PaperCard> questPool = new ItemPool<>(PaperCard.class);
|
||||||
@@ -1156,10 +1155,10 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
// fall through to below
|
// fall through to below
|
||||||
default:
|
default:
|
||||||
if (cardManager.getWantUnique()) {
|
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 {
|
else {
|
||||||
cardManager.setPool(editorType.applyCardFilter(ItemPool.createFrom(FModel.getMagicDb().getCommonCards().getAllCardsNoAlt(), PaperCard.class), additionalFilter), true);
|
cardManager.setPool(editorType.applyCardFilter(FModel.getAllCardsNoAlt(), additionalFilter), true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -187,7 +187,7 @@ public class ConquestUtil {
|
|||||||
public static Iterable<PaperCard> getStartingPlaneswalkerOptions(final PaperCard startingCommander) {
|
public static Iterable<PaperCard> getStartingPlaneswalkerOptions(final PaperCard startingCommander) {
|
||||||
final byte colorIdentity = startingCommander.getRules().getColorIdentity().getColor();
|
final byte colorIdentity = startingCommander.getRules().getColorIdentity().getColor();
|
||||||
final List<String> selected = Lists.newArrayList();
|
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
|
@Override
|
||||||
public boolean apply(PaperCard card) {
|
public boolean apply(PaperCard card) {
|
||||||
if (FModel.getMagicDb().getEditions().get(card.getEdition()).getType() == CardEdition.Type.PROMOS
|
if (FModel.getMagicDb().getEditions().get(card.getEdition()).getType() == CardEdition.Type.PROMOS
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import java.util.Map;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
|
import com.google.common.base.Predicates;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
|
|
||||||
import forge.CardStorageReader;
|
import forge.CardStorageReader;
|
||||||
@@ -31,6 +32,7 @@ import forge.ImageKeys;
|
|||||||
import forge.MulliganDefs;
|
import forge.MulliganDefs;
|
||||||
import forge.StaticData;
|
import forge.StaticData;
|
||||||
import forge.ai.AiProfileUtil;
|
import forge.ai.AiProfileUtil;
|
||||||
|
import forge.card.CardRulesPredicates;
|
||||||
import forge.card.CardType;
|
import forge.card.CardType;
|
||||||
import forge.deck.CardArchetypeLDAGenerator;
|
import forge.deck.CardArchetypeLDAGenerator;
|
||||||
import forge.deck.CardRelationMatrixGenerator;
|
import forge.deck.CardRelationMatrixGenerator;
|
||||||
@@ -55,6 +57,7 @@ import forge.gui.FThreads;
|
|||||||
import forge.gui.GuiBase;
|
import forge.gui.GuiBase;
|
||||||
import forge.gui.card.CardPreferences;
|
import forge.gui.card.CardPreferences;
|
||||||
import forge.gui.interfaces.IProgressBar;
|
import forge.gui.interfaces.IProgressBar;
|
||||||
|
import forge.item.PaperCard;
|
||||||
import forge.itemmanager.ItemManagerConfig;
|
import forge.itemmanager.ItemManagerConfig;
|
||||||
import forge.localinstance.achievements.AchievementCollection;
|
import forge.localinstance.achievements.AchievementCollection;
|
||||||
import forge.localinstance.achievements.ConstructedAchievements;
|
import forge.localinstance.achievements.ConstructedAchievements;
|
||||||
@@ -69,6 +72,7 @@ import forge.localinstance.properties.ForgePreferences.FPref;
|
|||||||
import forge.player.GamePlayerUtil;
|
import forge.player.GamePlayerUtil;
|
||||||
import forge.util.CardTranslation;
|
import forge.util.CardTranslation;
|
||||||
import forge.util.FileUtil;
|
import forge.util.FileUtil;
|
||||||
|
import forge.util.ItemPool;
|
||||||
import forge.util.Lang;
|
import forge.util.Lang;
|
||||||
import forge.util.Localizer;
|
import forge.util.Localizer;
|
||||||
import forge.util.storage.IStorage;
|
import forge.util.storage.IStorage;
|
||||||
@@ -109,6 +113,7 @@ public final class FModel {
|
|||||||
private static IStorage<ConquestPlane> planes;
|
private static IStorage<ConquestPlane> planes;
|
||||||
private static IStorage<QuestWorld> worlds;
|
private static IStorage<QuestWorld> worlds;
|
||||||
private static GameFormat.Collection formats;
|
private static GameFormat.Collection formats;
|
||||||
|
private static ItemPool<PaperCard> uniqueCardsNoAlt, allCardsNoAlt, planechaseCards, archenemyCards;
|
||||||
|
|
||||||
public static void initialize(final IProgressBar progressBar, Function<ForgePreferences, Void> adjustPrefs) {
|
public static void initialize(final IProgressBar progressBar, Function<ForgePreferences, Void> adjustPrefs) {
|
||||||
//init version to log
|
//init version to log
|
||||||
@@ -270,6 +275,12 @@ public final class FModel {
|
|||||||
deckGenMatrixLoaded=false;
|
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;
|
private static boolean deckGenMatrixLoaded=false;
|
||||||
@@ -286,6 +297,22 @@ public final class FModel {
|
|||||||
return conquest;
|
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;
|
private static boolean keywordsLoaded = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user