Get rid of an unnecessary CardDb of allCards which was taking 256kb of memory.

This commit is contained in:
Myrd
2016-12-25 06:22:26 +00:00
parent 328922029a
commit 3faf1946fa
2 changed files with 11 additions and 17 deletions

View File

@@ -30,7 +30,6 @@ public class StaticData {
private final String blockDataFolder;
private final CardDb commonCards;
private final CardDb variantCards;
private final CardDb allCards;
private final CardEdition.Collection editions;
// Loaded lazily:
@@ -51,7 +50,6 @@ public class StaticData {
final Map<String, CardRules> regularCards = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
final Map<String, CardRules> variantsCards = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
final Map<String, CardRules> fullCards = new TreeMap<String, CardRules>(String.CASE_INSENSITIVE_ORDER);
for (CardRules card : reader.loadCards()) {
if (null == card) continue;
@@ -59,21 +57,17 @@ public class StaticData {
final String cardName = card.getName();
if (card.isVariant()) {
variantsCards.put(cardName, card);
}
else {
} else {
regularCards.put(cardName, card);
}
fullCards.put(cardName, card);
}
commonCards = new CardDb(regularCards, editions);
variantCards = new CardDb(variantsCards, editions);
allCards = new CardDb(fullCards, editions);
//muse initialize after establish field values for the sake of card image logic
commonCards.initialize(false, false);
variantCards.initialize(false, false);
allCards.initialize( false, false);
}
public static StaticData instance() {
@@ -117,9 +111,11 @@ public class StaticData {
String cardName = r.cardName;
CardRules rules = reader.attemptToLoadCard(cardName, setCode);
if (rules != null) {
commonCards.loadCard(cardName, rules);
if (rules.isVariant()) {
variantCards.loadCard(cardName, rules);
allCards.loadCard(cardName, rules);
} else {
commonCards.loadCard(cardName, rules);
}
}
}
@@ -169,9 +165,4 @@ public class StaticData {
public CardDb getVariantCards() {
return variantCards;
}
public CardDb getAllCards() {
return allCards;
}
}

View File

@@ -161,7 +161,10 @@ public class GuiChoose {
return;
} else if (sel instanceof ICardFace) {
final ICardFace face = (ICardFace)sel;
final PaperCard paper = FModel.getMagicDb().getAllCards().getUniqueByName(face.getName());
PaperCard paper = FModel.getMagicDb().getCommonCards().getUniqueByName(face.getName());
if (paper == null) {
paper = FModel.getMagicDb().getVariantCards().getUniqueByName(face.getName());
}
matchUI.setCard(paper);
return;
}