* Performance: memory usage optimization for deck editor (part 2 of removed bloated usage of ManaCosts -> ManaColor objects, see #7515);

This commit is contained in:
Oleg Agafonov 2021-02-12 22:12:18 +04:00
parent c1dea5b21e
commit 10e557b873
25 changed files with 164 additions and 113 deletions

View file

@ -1,10 +1,16 @@
package mage.cards.mock;
import mage.abilities.costs.mana.ManaCost;
import mage.abilities.costs.mana.ManaCosts;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.cards.Card;
import mage.cards.SplitCard;
import mage.cards.SplitCardHalf;
import mage.cards.repository.CardInfo;
import java.util.List;
/**
*
* @author LevelX2
@ -12,9 +18,13 @@ import mage.cards.repository.CardInfo;
public class MockSplitCardHalf extends MockCard implements SplitCardHalf {
private SplitCard splitCardParent;
private ManaCosts<ManaCost> manaCosts;
private List<String> manaCostsSymbols;
public MockSplitCardHalf(CardInfo card) {
super(card);
this.manaCostsSymbols = card.getManaCosts(CardInfo.ManaCostSide.ALL);
this.manaCosts = new ManaCostsImpl<>(String.join("", this.manaCostsSymbols));
}
public MockSplitCardHalf(final MockSplitCardHalf card) {
@ -36,4 +46,15 @@ public class MockSplitCardHalf extends MockCard implements SplitCardHalf {
return splitCardParent;
}
@Override
public ManaCosts<ManaCost> getManaCost() {
// only split half cards can store mana cost in objects list instead strings (memory optimization)
return manaCosts;
}
@Override
public List<String> getManaCostSymbols() {
// only split half cards can store mana cost in objects list instead strings (memory optimization)
return manaCostsSymbols;
}
}