Merge branch 'master' into 'master'

update preload itempool

See merge request core-developers/forge!4428
This commit is contained in:
Anthony Calosa
2021-04-08 02:35:07 +00:00
2 changed files with 58 additions and 28 deletions

View File

@@ -63,8 +63,6 @@ public final class CEditorConstructed extends CDeckEditor<Deck> {
private final List<DeckSection> allSections = new ArrayList<>(); private final List<DeckSection> allSections = new ArrayList<>();
private ItemPool<PaperCard> normalPool, avatarPool, planePool, schemePool, conspiracyPool, commanderPool; private ItemPool<PaperCard> normalPool, avatarPool, planePool, schemePool, conspiracyPool, commanderPool;
Predicate<CardRules> commanderFilter;
CardManager catalogManager; CardManager catalogManager;
CardManager deckManager; CardManager deckManager;
@@ -94,51 +92,41 @@ public final class CEditorConstructed extends CDeckEditor<Deck> {
allSections.add(DeckSection.Planes); allSections.add(DeckSection.Planes);
allSections.add(DeckSection.Conspiracy); allSections.add(DeckSection.Conspiracy);
normalPool = ItemPool.createFrom(Iterables.concat(FModel.getMagicDb().getCommonCards().getAllCardsNoAlt(), FModel.getMagicDb().getCustomCards().getAllCardsNoAlt()), PaperCard.class); normalPool = FModel.getAllCardsNoAlt();
avatarPool = ItemPool.createFrom(FModel.getMagicDb().getVariantCards().getAllCards(Predicates.compose(CardRulesPredicates.Presets.IS_VANGUARD, PaperCard.FN_GET_RULES)), PaperCard.class); avatarPool = FModel.getAvatarPool();
planePool = ItemPool.createFrom(FModel.getMagicDb().getVariantCards().getAllCards(Predicates.compose(CardRulesPredicates.Presets.IS_PLANE_OR_PHENOMENON, PaperCard.FN_GET_RULES)), PaperCard.class); planePool = FModel.getPlanechaseCards();
schemePool = ItemPool.createFrom(FModel.getMagicDb().getVariantCards().getAllCards(Predicates.compose(CardRulesPredicates.Presets.IS_SCHEME, PaperCard.FN_GET_RULES)), PaperCard.class); schemePool = FModel.getArchenemyCards();
conspiracyPool = ItemPool.createFrom(FModel.getMagicDb().getVariantCards().getAllCards(Predicates.compose(CardRulesPredicates.Presets.IS_CONSPIRACY, PaperCard.FN_GET_RULES)), PaperCard.class); conspiracyPool = FModel.getConspiracyPool();
break; break;
case Commander: case Commander:
allSections.add(DeckSection.Commander); allSections.add(DeckSection.Commander);
commanderFilter = CardRulesPredicates.Presets.CAN_BE_COMMANDER; commanderPool = FModel.getCommanderPool();
commanderPool = ItemPool.createFrom(Iterables.concat(FModel.getMagicDb().getCommonCards().getAllCardsNoAlt(Predicates.compose(commanderFilter, PaperCard.FN_GET_RULES)), FModel.getMagicDb().getCustomCards().getAllCardsNoAlt(Predicates.compose(commanderFilter, PaperCard.FN_GET_RULES))), PaperCard.class); normalPool = FModel.getAllCardsNoAlt();
normalPool = ItemPool.createFrom(Iterables.concat(FModel.getMagicDb().getCommonCards().getAllCardsNoAlt(), FModel.getMagicDb().getCustomCards().getAllCardsNoAlt()), PaperCard.class);
wantUnique = true; wantUnique = true;
break; break;
case TinyLeaders: case TinyLeaders:
allSections.add(DeckSection.Commander); allSections.add(DeckSection.Commander);
commanderFilter = CardRulesPredicates.Presets.CAN_BE_TINY_LEADERS_COMMANDER; commanderPool = FModel.getTinyLeadersCommander();
commanderPool = ItemPool.createFrom(Iterables.concat( normalPool = FModel.getAllCardsNoAlt();
FModel.getMagicDb().getCommonCards().getAllCardsNoAlt(Predicates.compose(commanderFilter, PaperCard.FN_GET_RULES)),
FModel.getMagicDb().getCustomCards().getAllCardsNoAlt(Predicates.compose(commanderFilter, PaperCard.FN_GET_RULES))), PaperCard.class);
normalPool = ItemPool.createFrom(Iterables.concat(FModel.getMagicDb().getCommonCards().getAllCardsNoAlt(), FModel.getMagicDb().getCustomCards().getAllCardsNoAlt()), PaperCard.class);
wantUnique = true; wantUnique = true;
break; break;
case Oathbreaker: case Oathbreaker:
allSections.add(DeckSection.Commander); allSections.add(DeckSection.Commander);
commanderFilter = Predicates.or(CardRulesPredicates.Presets.CAN_BE_OATHBREAKER, CardRulesPredicates.Presets.CAN_BE_SIGNATURE_SPELL); commanderPool = FModel.getOathbreakerCommander();
commanderPool = ItemPool.createFrom(Iterables.concat( normalPool = FModel.getAllCardsNoAlt();
FModel.getMagicDb().getCommonCards().getAllCardsNoAlt(Predicates.compose(commanderFilter, PaperCard.FN_GET_RULES)),
FModel.getMagicDb().getCustomCards().getAllCardsNoAlt(Predicates.compose(commanderFilter, PaperCard.FN_GET_RULES))), PaperCard.class);
normalPool = ItemPool.createFrom(Iterables.concat(FModel.getMagicDb().getCommonCards().getAllCardsNoAlt(), FModel.getMagicDb().getCustomCards().getAllCardsNoAlt()), PaperCard.class);
wantUnique = true; wantUnique = true;
break; break;
case Brawl: case Brawl:
allSections.add(DeckSection.Commander); allSections.add(DeckSection.Commander);
commanderFilter = CardRulesPredicates.Presets.CAN_BE_BRAWL_COMMANDER; commanderPool = FModel.getBrawlCommander();
commanderPool = ItemPool.createFrom(Iterables.concat(FModel.getMagicDb().getCommonCards().getAllCardsNoAlt(Predicates.and(
FModel.getFormats().get("Brawl").getFilterPrinted(), Predicates.compose(commanderFilter, PaperCard.FN_GET_RULES))), FModel.getMagicDb().getCustomCards().getAllCardsNoAlt(Predicates.and(
FModel.getFormats().get("Brawl").getFilterPrinted(), Predicates.compose(commanderFilter, PaperCard.FN_GET_RULES)))), PaperCard.class);
normalPool = ItemPool.createFrom(FModel.getFormats().get("Brawl").getAllCards(), PaperCard.class); normalPool = ItemPool.createFrom(FModel.getFormats().get("Brawl").getAllCards(), PaperCard.class);
wantUnique = true; wantUnique = true;

View File

@@ -114,7 +114,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; private static ItemPool<PaperCard> uniqueCardsNoAlt, allCardsNoAlt, planechaseCards, archenemyCards, brawlCommander, oathbreakerCommander, tinyLeadersCommander, commanderPool, avatarPool, conspiracyPool;
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
@@ -277,11 +277,29 @@ public final class FModel {
} }
} }
//preload Itempool
uniqueCardsNoAlt = ItemPool.createFrom(Iterables.concat(getMagicDb().getCommonCards().getUniqueCardsNoAlt(), getMagicDb().getCustomCards().getUniqueCardsNoAlt()), PaperCard.class);
allCardsNoAlt = ItemPool.createFrom(Iterables.concat(getMagicDb().getCommonCards().getAllCardsNoAlt(), getMagicDb().getCustomCards().getAllCardsNoAlt()), PaperCard.class); allCardsNoAlt = ItemPool.createFrom(Iterables.concat(getMagicDb().getCommonCards().getAllCardsNoAlt(), getMagicDb().getCustomCards().getAllCardsNoAlt()), PaperCard.class);
archenemyCards = ItemPool.createFrom(getMagicDb().getVariantCards().getAllCards(Predicates.compose(CardRulesPredicates.Presets.IS_SCHEME, PaperCard.FN_GET_RULES)), 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); planechaseCards = ItemPool.createFrom(getMagicDb().getVariantCards().getAllCards(Predicates.compose(CardRulesPredicates.Presets.IS_PLANE_OR_PHENOMENON, PaperCard.FN_GET_RULES)), PaperCard.class);
if (GuiBase.getInterface().isLibgdxPort()) {
//preload mobile Itempool
uniqueCardsNoAlt = ItemPool.createFrom(Iterables.concat(getMagicDb().getCommonCards().getUniqueCardsNoAlt(), getMagicDb().getCustomCards().getUniqueCardsNoAlt()), PaperCard.class);
} else {
//preload Desktop Itempool
commanderPool = ItemPool.createFrom(Iterables.concat(
getMagicDb().getCommonCards().getAllCardsNoAlt(Predicates.compose(CardRulesPredicates.Presets.CAN_BE_COMMANDER, PaperCard.FN_GET_RULES)),
getMagicDb().getCustomCards().getAllCardsNoAlt(Predicates.compose(CardRulesPredicates.Presets.CAN_BE_COMMANDER, PaperCard.FN_GET_RULES))), PaperCard.class);
brawlCommander = ItemPool.createFrom(Iterables.concat(getMagicDb().getCommonCards().getAllCardsNoAlt(Predicates.and(
FModel.getFormats().get("Brawl").getFilterPrinted(), Predicates.compose(CardRulesPredicates.Presets.CAN_BE_BRAWL_COMMANDER, PaperCard.FN_GET_RULES))), getMagicDb().getCustomCards().getAllCardsNoAlt(Predicates.and(
FModel.getFormats().get("Brawl").getFilterPrinted(), Predicates.compose(CardRulesPredicates.Presets.CAN_BE_BRAWL_COMMANDER, PaperCard.FN_GET_RULES)))), PaperCard.class);
oathbreakerCommander = ItemPool.createFrom(Iterables.concat(
getMagicDb().getCommonCards().getAllCardsNoAlt(Predicates.compose(Predicates.or(CardRulesPredicates.Presets.CAN_BE_OATHBREAKER, CardRulesPredicates.Presets.CAN_BE_SIGNATURE_SPELL), PaperCard.FN_GET_RULES)),
getMagicDb().getCustomCards().getAllCardsNoAlt(Predicates.compose(Predicates.or(CardRulesPredicates.Presets.CAN_BE_OATHBREAKER, CardRulesPredicates.Presets.CAN_BE_SIGNATURE_SPELL), PaperCard.FN_GET_RULES))), PaperCard.class);
tinyLeadersCommander = ItemPool.createFrom(Iterables.concat(
getMagicDb().getCommonCards().getAllCardsNoAlt(Predicates.compose(CardRulesPredicates.Presets.CAN_BE_TINY_LEADERS_COMMANDER, PaperCard.FN_GET_RULES)),
getMagicDb().getCustomCards().getAllCardsNoAlt(Predicates.compose(CardRulesPredicates.Presets.CAN_BE_TINY_LEADERS_COMMANDER, PaperCard.FN_GET_RULES))), PaperCard.class);
avatarPool = ItemPool.createFrom(getMagicDb().getVariantCards().getAllCards(Predicates.compose(CardRulesPredicates.Presets.IS_VANGUARD, PaperCard.FN_GET_RULES)), PaperCard.class);
conspiracyPool = ItemPool.createFrom(getMagicDb().getVariantCards().getAllCards(Predicates.compose(CardRulesPredicates.Presets.IS_CONSPIRACY, PaperCard.FN_GET_RULES)), PaperCard.class);
}
} }
private static boolean deckGenMatrixLoaded=false; private static boolean deckGenMatrixLoaded=false;
@@ -314,6 +332,30 @@ public final class FModel {
return planechaseCards; return planechaseCards;
} }
public static ItemPool<PaperCard> getBrawlCommander() {
return brawlCommander;
}
public static ItemPool<PaperCard> getOathbreakerCommander() {
return oathbreakerCommander;
}
public static ItemPool<PaperCard> getTinyLeadersCommander() {
return tinyLeadersCommander;
}
public static ItemPool<PaperCard> getCommanderPool() {
return commanderPool;
}
public static ItemPool<PaperCard> getAvatarPool() {
return avatarPool;
}
public static ItemPool<PaperCard> getConspiracyPool() {
return conspiracyPool;
}
private static boolean keywordsLoaded = false; private static boolean keywordsLoaded = false;
/** /**