forked from External/mage
replace public fields with encapsulation
This commit is contained in:
parent
d1e319787c
commit
8319fbf9ad
26 changed files with 544 additions and 327 deletions
|
|
@ -125,16 +125,16 @@ public abstract class Animation {
|
|||
@Override
|
||||
protected void update(float percentage) {
|
||||
if (tapped) {
|
||||
panel.tappedAngle = CardPanel.TAPPED_ANGLE * percentage;
|
||||
panel.setTappedAngle(CardPanel.TAPPED_ANGLE * percentage);
|
||||
// reverse movement if untapping
|
||||
if (!panel.isTapped()) {
|
||||
panel.tappedAngle = CardPanel.TAPPED_ANGLE - panel.tappedAngle;
|
||||
panel.setTappedAngle(CardPanel.TAPPED_ANGLE - panel.getTappedAngle());
|
||||
}
|
||||
}
|
||||
if (flipped) {
|
||||
panel.flippedAngle = CardPanel.FLIPPED_ANGLE * percentage;
|
||||
panel.setFlippedAngle(CardPanel.FLIPPED_ANGLE * percentage);
|
||||
if (!panel.isFlipped()) {
|
||||
panel.flippedAngle = CardPanel.FLIPPED_ANGLE - panel.flippedAngle;
|
||||
panel.setFlippedAngle(CardPanel.FLIPPED_ANGLE - panel.getFlippedAngle());
|
||||
}
|
||||
}
|
||||
panel.repaint();
|
||||
|
|
@ -143,10 +143,10 @@ public abstract class Animation {
|
|||
@Override
|
||||
protected void end() {
|
||||
if (tapped) {
|
||||
panel.tappedAngle = panel.isTapped() ? CardPanel.TAPPED_ANGLE : 0;
|
||||
panel.setTappedAngle(panel.isTapped() ? CardPanel.TAPPED_ANGLE : 0);
|
||||
}
|
||||
if (flipped) {
|
||||
panel.flippedAngle = panel.isFlipped() ? CardPanel.FLIPPED_ANGLE : 0;
|
||||
panel.setFlippedAngle(panel.isFlipped() ? CardPanel.FLIPPED_ANGLE : 0);
|
||||
}
|
||||
parent.onEndAnimation();
|
||||
parent.repaint();
|
||||
|
|
@ -334,7 +334,7 @@ public abstract class Animation {
|
|||
currentX = Math.min(currentX, layeredPane.getWidth() - currentWidth);
|
||||
int currentY = Math.max(0, centerY - Math.round(currentHeight / 2f));
|
||||
currentY = Math.min(currentY, layeredPane.getHeight() - currentHeight);
|
||||
animationPanel.tappedAngle = overPanel.tappedAngle * percentage;
|
||||
animationPanel.setTappedAngle(overPanel.getTappedAngle() * percentage);
|
||||
animationPanel.setCardBounds(currentX, currentY, currentWidth, currentHeight);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -48,14 +48,14 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
private static final float ROT_CENTER_TO_TOP_CORNER = 1.0295630140987000315797369464196f;
|
||||
private static final float ROT_CENTER_TO_BOTTOM_CORNER = 0.7071067811865475244008443621048f;
|
||||
|
||||
public CardView gameCard;
|
||||
public CardView updateCard;
|
||||
private CardView gameCard;
|
||||
private CardView updateCard;
|
||||
|
||||
// for two faced cards
|
||||
public CardView temporary;
|
||||
private CardView temporary;
|
||||
|
||||
public double tappedAngle = 0;
|
||||
public double flippedAngle = 0;
|
||||
private double tappedAngle = 0;
|
||||
private double flippedAngle = 0;
|
||||
|
||||
private final List<MagePermanent> links = new ArrayList<>();
|
||||
|
||||
|
|
@ -99,14 +99,14 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
|
||||
public CardPanel(CardView newGameCard, UUID gameId, final boolean loadImage, ActionCallback callback, final boolean foil, Dimension dimension) {
|
||||
// Store away params
|
||||
this.gameCard = newGameCard;
|
||||
this.setGameCard(newGameCard);
|
||||
this.callback = callback;
|
||||
this.gameId = gameId;
|
||||
|
||||
// Gather info about the card
|
||||
this.isPermanent = this.gameCard instanceof PermanentView && !this.gameCard.inViewerOnly();
|
||||
this.isPermanent = this.getGameCard() instanceof PermanentView && !this.getGameCard().inViewerOnly();
|
||||
if (isPermanent) {
|
||||
this.hasSickness = ((PermanentView) this.gameCard).hasSummoningSickness();
|
||||
this.hasSickness = ((PermanentView) this.getGameCard()).hasSummoningSickness();
|
||||
}
|
||||
|
||||
// Set to requested size
|
||||
|
|
@ -120,7 +120,7 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
add(buttonPanel);
|
||||
|
||||
// Both card rendering implementations have a transform button
|
||||
if (this.gameCard.canTransform()) {
|
||||
if (this.getGameCard().canTransform()) {
|
||||
// Create the day night button
|
||||
dayNightButton = new JButton("");
|
||||
dayNightButton.setSize(32, 32);
|
||||
|
|
@ -142,12 +142,12 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
}
|
||||
|
||||
// Both card rendering implementations have a view copy source button
|
||||
if (this.gameCard instanceof PermanentView) {
|
||||
if (this.getGameCard() instanceof PermanentView) {
|
||||
// Create the show source button
|
||||
showCopySourceButton = new JButton("");
|
||||
showCopySourceButton.setSize(32, 32);
|
||||
showCopySourceButton.setToolTipText("This permanent is copying a target. To see original card, push this button or turn mouse wheel down while hovering with the mouse pointer over the permanent.");
|
||||
showCopySourceButton.setVisible(((PermanentView) this.gameCard).isCopy());
|
||||
showCopySourceButton.setVisible(((PermanentView) this.getGameCard()).isCopy());
|
||||
showCopySourceButton.setIcon(new ImageIcon(ImageManagerImpl.instance.getCopyInformIconImage()));
|
||||
showCopySourceButton.addActionListener(e -> {
|
||||
ActionCallback callback1 = Plugins.instance.getActionCallback();
|
||||
|
|
@ -174,8 +174,8 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
tooltipText.setText(getText(cardType, newGameCard));
|
||||
|
||||
// Animation setup
|
||||
tappedAngle = isTapped() ? CardPanel.TAPPED_ANGLE : 0;
|
||||
flippedAngle = isFlipped() ? CardPanel.FLIPPED_ANGLE : 0;
|
||||
setTappedAngle(isTapped() ? CardPanel.TAPPED_ANGLE : 0);
|
||||
setFlippedAngle(isFlipped() ? CardPanel.FLIPPED_ANGLE : 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -197,7 +197,7 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
|
||||
public final void initialDraw() {
|
||||
// Kick off
|
||||
if (gameCard.isTransformed()) {
|
||||
if (getGameCard().isTransformed()) {
|
||||
// this calls updateImage
|
||||
toggleTransformed();
|
||||
} else {
|
||||
|
|
@ -325,10 +325,10 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
g2d.translate(edgeOffset * (1 - transformAngle), 0);
|
||||
g2d.scale(transformAngle, 1);
|
||||
}
|
||||
if (tappedAngle + flippedAngle > 0) {
|
||||
if (getTappedAngle() + getFlippedAngle() > 0) {
|
||||
g2d = (Graphics2D) g2d.create();
|
||||
float edgeOffset = cardWidth / 2f;
|
||||
double angle = tappedAngle + (Math.abs(flippedAngle - FLIPPED_ANGLE) < 0.001 ? 0 : flippedAngle);
|
||||
double angle = getTappedAngle() + (Math.abs(getFlippedAngle() - FLIPPED_ANGLE) < 0.001 ? 0 : getFlippedAngle());
|
||||
g2d.rotate(angle, cardXOffset + edgeOffset, cardYOffset + cardHeight - edgeOffset);
|
||||
}
|
||||
super.paint(g2d);
|
||||
|
|
@ -347,7 +347,7 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
|
||||
@Override
|
||||
public String toString() {
|
||||
return gameCard.toString();
|
||||
return getGameCard().toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -433,7 +433,7 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
}
|
||||
|
||||
public final CardView getCard() {
|
||||
return this.gameCard;
|
||||
return this.getGameCard();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -457,7 +457,7 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
@Override
|
||||
public final boolean isTapped() {
|
||||
if (isPermanent) {
|
||||
return ((PermanentView) gameCard).isTapped();
|
||||
return ((PermanentView) getGameCard()).isTapped();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
@ -465,7 +465,7 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
@Override
|
||||
public final boolean isFlipped() {
|
||||
if (isPermanent) {
|
||||
return ((PermanentView) gameCard).isFlipped();
|
||||
return ((PermanentView) getGameCard()).isFlipped();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
@ -473,7 +473,7 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
@Override
|
||||
public final boolean isTransformed() {
|
||||
if (isPermanent) {
|
||||
if (gameCard.isTransformed()) {
|
||||
if (getGameCard().isTransformed()) {
|
||||
return !this.transformed;
|
||||
} else {
|
||||
return this.transformed;
|
||||
|
|
@ -503,7 +503,7 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
*/
|
||||
@Override
|
||||
public void update(CardView card) {
|
||||
this.updateCard = card;
|
||||
this.setUpdateCard(card);
|
||||
|
||||
// Animation update
|
||||
if (isPermanent && (card instanceof PermanentView)) {
|
||||
|
|
@ -527,11 +527,11 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
|
||||
// Update art?
|
||||
boolean mustUpdateArt
|
||||
= (!gameCard.getName().equals(card.getName()))
|
||||
|| (gameCard.isFaceDown() != card.isFaceDown());
|
||||
= (!getGameCard().getName().equals(card.getName()))
|
||||
|| (getGameCard().isFaceDown() != card.isFaceDown());
|
||||
|
||||
// Set the new card
|
||||
this.gameCard = card;
|
||||
this.setGameCard(card);
|
||||
|
||||
// Update tooltip text
|
||||
String cardType = getType(card);
|
||||
|
|
@ -580,7 +580,7 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
|
||||
@Override
|
||||
public CardView getOriginal() {
|
||||
return this.gameCard;
|
||||
return this.getGameCard();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -589,7 +589,7 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent e) {
|
||||
if (gameCard.hideInfo()) {
|
||||
if (getGameCard().hideInfo()) {
|
||||
return;
|
||||
}
|
||||
if (!tooltipShowing) {
|
||||
|
|
@ -607,22 +607,22 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
|
||||
@Override
|
||||
public void mouseDragged(MouseEvent e) {
|
||||
data.component = this;
|
||||
data.setComponent(this);
|
||||
callback.mouseDragged(e, data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseMoved(MouseEvent e) {
|
||||
if (gameCard.hideInfo()) {
|
||||
if (getGameCard().hideInfo()) {
|
||||
return;
|
||||
}
|
||||
data.component = this;
|
||||
data.setComponent(this);
|
||||
callback.mouseMoved(e, data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent e) {
|
||||
if (gameCard.hideInfo()) {
|
||||
if (getGameCard().hideInfo()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -630,9 +630,9 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
synchronized (this) {
|
||||
if (tooltipShowing) {
|
||||
tooltipShowing = false;
|
||||
data.component = this;
|
||||
data.card = this.gameCard;
|
||||
data.popupText = tooltipText;
|
||||
data.setComponent(this);
|
||||
data.setCard(this.getGameCard());
|
||||
data.setPopupText(tooltipText);
|
||||
callback.mouseExited(e, data);
|
||||
}
|
||||
}
|
||||
|
|
@ -641,9 +641,9 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
|
||||
@Override
|
||||
public void mousePressed(MouseEvent e) {
|
||||
data.component = this;
|
||||
data.card = this.gameCard;
|
||||
data.gameId = this.gameId;
|
||||
data.setComponent(this);
|
||||
data.setCard(this.getGameCard());
|
||||
data.setGameId(this.gameId);
|
||||
callback.mousePressed(e, data);
|
||||
}
|
||||
|
||||
|
|
@ -658,13 +658,13 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
* @return
|
||||
*/
|
||||
private TransferData getTransferDataForMouseEntered() {
|
||||
data.component = this;
|
||||
data.card = this.gameCard;
|
||||
data.popupText = tooltipText;
|
||||
data.gameId = this.gameId;
|
||||
data.locationOnScreen = data.component.getLocationOnScreen(); // we need this for popup
|
||||
data.popupOffsetX = isTapped() ? cardHeight + cardXOffset + POPUP_X_GAP : cardWidth + cardXOffset + POPUP_X_GAP;
|
||||
data.popupOffsetY = 40;
|
||||
data.setComponent(this);
|
||||
data.setCard(this.getGameCard());
|
||||
data.setPopupText(tooltipText);
|
||||
data.setGameId(this.gameId);
|
||||
data.setLocationOnScreen(data.getComponent().getLocationOnScreen()); // we need this for popup
|
||||
data.setPopupOffsetX(isTapped() ? cardHeight + cardXOffset + POPUP_X_GAP : cardWidth + cardXOffset + POPUP_X_GAP);
|
||||
data.setPopupOffsetY(40);
|
||||
return data;
|
||||
}
|
||||
|
||||
|
|
@ -734,7 +734,7 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
@Override
|
||||
public PermanentView getOriginalPermanent() {
|
||||
if (isPermanent) {
|
||||
return (PermanentView) this.gameCard;
|
||||
return (PermanentView) this.getGameCard();
|
||||
}
|
||||
throw new IllegalStateException("Is not permanent.");
|
||||
}
|
||||
|
|
@ -757,13 +757,13 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
BufferedImage night = ImageManagerImpl.instance.getNightImage();
|
||||
dayNightButton.setIcon(new ImageIcon(night));
|
||||
}
|
||||
if (this.gameCard.getSecondCardFace() == null) {
|
||||
if (this.getGameCard().getSecondCardFace() == null) {
|
||||
LOGGER.error("no second side for card to transform!");
|
||||
return;
|
||||
}
|
||||
if (!isPermanent) { // use only for custom transformation (when pressing day-night button)
|
||||
this.temporary = this.gameCard;
|
||||
update(this.gameCard.getSecondCardFace());
|
||||
this.setTemporary(this.getGameCard());
|
||||
update(this.getGameCard().getSecondCardFace());
|
||||
}
|
||||
} else {
|
||||
if (dayNightButton != null) { // if transformbable card is copied, button can be null
|
||||
|
|
@ -771,22 +771,22 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
dayNightButton.setIcon(new ImageIcon(day));
|
||||
}
|
||||
if (!isPermanent) { // use only for custom transformation (when pressing day-night button)
|
||||
update(this.temporary);
|
||||
this.temporary = null;
|
||||
update(this.getTemporary());
|
||||
this.setTemporary(null);
|
||||
}
|
||||
}
|
||||
String temp = this.gameCard.getAlternateName();
|
||||
this.gameCard.setAlternateName(this.gameCard.getOriginalName());
|
||||
this.gameCard.setOriginalName(temp);
|
||||
String temp = this.getGameCard().getAlternateName();
|
||||
this.getGameCard().setAlternateName(this.getGameCard().getOriginalName());
|
||||
this.getGameCard().setOriginalName(temp);
|
||||
updateArtImage();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseWheelMoved(MouseWheelEvent e) {
|
||||
if (gameCard.hideInfo()) {
|
||||
if (getGameCard().hideInfo()) {
|
||||
return;
|
||||
}
|
||||
data.component = this;
|
||||
data.setComponent(this);
|
||||
callback.mouseWheelMoved(e, data);
|
||||
}
|
||||
|
||||
|
|
@ -800,8 +800,8 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
// this update removes the isChoosable mark from targetCardsInLibrary
|
||||
// so only done for permanents because it's needed to redraw counters in different size, if window size was changed
|
||||
// no perfect solution yet (maybe also other not wanted effects for PermanentView objects)
|
||||
if ((updateCard instanceof PermanentView)) {
|
||||
update(updateCard);
|
||||
if ((getUpdateCard() instanceof PermanentView)) {
|
||||
update(getUpdateCard());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -836,4 +836,43 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
this.popupMenu = popupMenu;
|
||||
}
|
||||
|
||||
public CardView getGameCard() {
|
||||
return gameCard;
|
||||
}
|
||||
|
||||
public void setGameCard(CardView gameCard) {
|
||||
this.gameCard = gameCard;
|
||||
}
|
||||
|
||||
public CardView getUpdateCard() {
|
||||
return updateCard;
|
||||
}
|
||||
|
||||
public void setUpdateCard(CardView updateCard) {
|
||||
this.updateCard = updateCard;
|
||||
}
|
||||
|
||||
public CardView getTemporary() {
|
||||
return temporary;
|
||||
}
|
||||
|
||||
public void setTemporary(CardView temporary) {
|
||||
this.temporary = temporary;
|
||||
}
|
||||
|
||||
public double getTappedAngle() {
|
||||
return tappedAngle;
|
||||
}
|
||||
|
||||
public void setTappedAngle(double tappedAngle) {
|
||||
this.tappedAngle = tappedAngle;
|
||||
}
|
||||
|
||||
public double getFlippedAngle() {
|
||||
return flippedAngle;
|
||||
}
|
||||
|
||||
public void setFlippedAngle(double flippedAngle) {
|
||||
this.flippedAngle = flippedAngle;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,10 +12,6 @@ import org.jdesktop.swingx.graphics.GraphicsUtilities;
|
|||
import org.mage.plugins.card.images.ImageCache;
|
||||
import org.mage.plugins.card.utils.impl.ImageManagerImpl;
|
||||
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
|
||||
import mage.cards.action.ActionCallback;
|
||||
import mage.client.constants.Constants;
|
||||
import mage.client.dialog.PreferencesDialog;
|
||||
|
|
@ -56,12 +52,12 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
private static final int CARD_MAX_SIZE_FOR_ICONS = 200;
|
||||
|
||||
public final ScaledImagePanel imagePanel;
|
||||
public ImagePanel overlayPanel;
|
||||
private ImagePanel overlayPanel;
|
||||
|
||||
public JPanel iconPanel;
|
||||
private JPanel iconPanel;
|
||||
private JButton typeButton;
|
||||
|
||||
public JPanel counterPanel;
|
||||
private JPanel counterPanel;
|
||||
private JLabel loyaltyCounterLabel;
|
||||
private JLabel plusCounterLabel;
|
||||
private JLabel otherCounterLabel;
|
||||
|
|
@ -84,6 +80,30 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
|
||||
private final static SoftValuesLoadingCache<Key, BufferedImage> IMAGE_CACHE;
|
||||
|
||||
public ImagePanel getOverlayPanel() {
|
||||
return overlayPanel;
|
||||
}
|
||||
|
||||
public void setOverlayPanel(ImagePanel overlayPanel) {
|
||||
this.overlayPanel = overlayPanel;
|
||||
}
|
||||
|
||||
public JPanel getIconPanel() {
|
||||
return iconPanel;
|
||||
}
|
||||
|
||||
public void setIconPanel(JPanel iconPanel) {
|
||||
this.iconPanel = iconPanel;
|
||||
}
|
||||
|
||||
public JPanel getCounterPanel() {
|
||||
return counterPanel;
|
||||
}
|
||||
|
||||
public void setCounterPanel(JPanel counterPanel) {
|
||||
this.counterPanel = counterPanel;
|
||||
}
|
||||
|
||||
static class Key {
|
||||
|
||||
final int width;
|
||||
|
|
@ -217,27 +237,27 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
// Counter panel
|
||||
if (!newGameCard.isAbility()) {
|
||||
// panel to show counters on the card
|
||||
counterPanel = new JPanel();
|
||||
counterPanel.setLayout(null);
|
||||
counterPanel.setOpaque(false);
|
||||
add(counterPanel);
|
||||
setCounterPanel(new JPanel());
|
||||
getCounterPanel().setLayout(null);
|
||||
getCounterPanel().setOpaque(false);
|
||||
add(getCounterPanel());
|
||||
|
||||
plusCounterLabel = new JLabel("");
|
||||
plusCounterLabel.setToolTipText("+1/+1");
|
||||
counterPanel.add(plusCounterLabel);
|
||||
getCounterPanel().add(plusCounterLabel);
|
||||
|
||||
minusCounterLabel = new JLabel("");
|
||||
minusCounterLabel.setToolTipText("-1/-1");
|
||||
counterPanel.add(minusCounterLabel);
|
||||
getCounterPanel().add(minusCounterLabel);
|
||||
|
||||
loyaltyCounterLabel = new JLabel("");
|
||||
loyaltyCounterLabel.setToolTipText("loyalty");
|
||||
counterPanel.add(loyaltyCounterLabel);
|
||||
getCounterPanel().add(loyaltyCounterLabel);
|
||||
|
||||
otherCounterLabel = new JLabel("");
|
||||
counterPanel.add(otherCounterLabel);
|
||||
getCounterPanel().add(otherCounterLabel);
|
||||
|
||||
counterPanel.setVisible(false);
|
||||
getCounterPanel().setVisible(false);
|
||||
}
|
||||
|
||||
// Ability icon
|
||||
|
|
@ -250,7 +270,7 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
}
|
||||
|
||||
// Token icon
|
||||
if (this.gameCard.isToken()) {
|
||||
if (this.getGameCard().isToken()) {
|
||||
setTypeIcon(ImageManagerImpl.instance.getTokenIconImage(), "Token Permanent");
|
||||
}
|
||||
|
||||
|
|
@ -259,7 +279,7 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
|
||||
// Title Text
|
||||
titleText = new GlowText();
|
||||
setText(gameCard);
|
||||
setText(getGameCard());
|
||||
// int fontSize = (int) cardHeight / 11;
|
||||
// titleText.setFont(getFont().deriveFont(Font.BOLD, fontSize));
|
||||
titleText.setForeground(Color.white);
|
||||
|
|
@ -275,10 +295,10 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
|
||||
// PT Text
|
||||
ptText = new GlowText();
|
||||
if (gameCard.isCreature()) {
|
||||
ptText.setText(gameCard.getPower() + '/' + gameCard.getToughness());
|
||||
} else if (gameCard.isPlanesWalker()) {
|
||||
ptText.setText(gameCard.getLoyalty());
|
||||
if (getGameCard().isCreature()) {
|
||||
ptText.setText(getGameCard().getPower() + '/' + getGameCard().getToughness());
|
||||
} else if (getGameCard().isPlanesWalker()) {
|
||||
ptText.setText(getGameCard().getLoyalty());
|
||||
}
|
||||
// ptText.setFont(getFont().deriveFont(Font.BOLD, fontSize));
|
||||
ptText.setForeground(Color.white);
|
||||
|
|
@ -287,9 +307,9 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
|
||||
// Sickness overlay
|
||||
BufferedImage sickness = ImageManagerImpl.instance.getSicknessImage();
|
||||
overlayPanel = new ImagePanel(sickness, ImagePanelStyle.SCALED);
|
||||
overlayPanel.setOpaque(false);
|
||||
add(overlayPanel);
|
||||
setOverlayPanel(new ImagePanel(sickness, ImagePanelStyle.SCALED));
|
||||
getOverlayPanel().setOpaque(false);
|
||||
add(getOverlayPanel());
|
||||
|
||||
// Imagel panel
|
||||
imagePanel = new ScaledImagePanel();
|
||||
|
|
@ -305,27 +325,27 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
}
|
||||
|
||||
private void setTypeIcon(BufferedImage bufferedImage, String toolTipText) {
|
||||
iconPanel = new JPanel();
|
||||
iconPanel.setLayout(null);
|
||||
iconPanel.setOpaque(false);
|
||||
add(iconPanel);
|
||||
setIconPanel(new JPanel());
|
||||
getIconPanel().setLayout(null);
|
||||
getIconPanel().setOpaque(false);
|
||||
add(getIconPanel());
|
||||
|
||||
typeButton = new JButton("");
|
||||
typeButton.setLocation(2, 2);
|
||||
typeButton.setSize(25, 25);
|
||||
|
||||
iconPanel.setVisible(true);
|
||||
getIconPanel().setVisible(true);
|
||||
typeButton.setIcon(new ImageIcon(bufferedImage));
|
||||
if (toolTipText != null) {
|
||||
typeButton.setToolTipText(toolTipText);
|
||||
}
|
||||
iconPanel.add(typeButton);
|
||||
getIconPanel().add(typeButton);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cleanUp() {
|
||||
super.cleanUp();
|
||||
this.counterPanel = null;
|
||||
this.setCounterPanel(null);
|
||||
}
|
||||
|
||||
private void setText(CardView card) {
|
||||
|
|
@ -386,7 +406,7 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
g2d.drawImage(
|
||||
IMAGE_CACHE.getOrThrow(
|
||||
new Key(getWidth(), getHeight(), getCardWidth(), getCardHeight(), getCardXOffset(), getCardYOffset(),
|
||||
hasImage, isSelected(), isChoosable(), gameCard.isPlayable(), gameCard.isCanAttack())),
|
||||
hasImage, isSelected(), isChoosable(), getGameCard().isPlayable(), getGameCard().isCanAttack())),
|
||||
0, 0, null);
|
||||
g2d.dispose();
|
||||
}
|
||||
|
|
@ -481,7 +501,7 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
|
||||
int symbolMarginX = 2; // 2 px between icons
|
||||
|
||||
String manaCost = ManaSymbols.getStringManaCost(gameCard.getManaCost());
|
||||
String manaCost = ManaSymbols.getStringManaCost(getGameCard().getManaCost());
|
||||
int manaWidth = getManaWidth(manaCost, symbolMarginX);
|
||||
|
||||
// right top corner with margin (sizes from any sample card, length from black border to mana icon)
|
||||
|
|
@ -525,32 +545,32 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
imagePanel.setLocation(realCardSize.x, realCardSize.y);
|
||||
imagePanel.setSize(realCardSize.width, realCardSize.height);
|
||||
|
||||
if (hasSickness() && gameCard.isCreature() && isPermanent()) {
|
||||
overlayPanel.setLocation(realCardSize.x, realCardSize.y);
|
||||
overlayPanel.setSize(realCardSize.width, realCardSize.height);
|
||||
if (hasSickness() && getGameCard().isCreature() && isPermanent()) {
|
||||
getOverlayPanel().setLocation(realCardSize.x, realCardSize.y);
|
||||
getOverlayPanel().setSize(realCardSize.width, realCardSize.height);
|
||||
} else {
|
||||
overlayPanel.setVisible(false);
|
||||
getOverlayPanel().setVisible(false);
|
||||
}
|
||||
|
||||
if (iconPanel != null) {
|
||||
iconPanel.setLocation(realCardSize.x, realCardSize.y);
|
||||
iconPanel.setSize(realCardSize.width, realCardSize.height);
|
||||
if (getIconPanel() != null) {
|
||||
getIconPanel().setLocation(realCardSize.x, realCardSize.y);
|
||||
getIconPanel().setSize(realCardSize.width, realCardSize.height);
|
||||
}
|
||||
if (counterPanel != null) {
|
||||
counterPanel.setLocation(realCardSize.x, realCardSize.y);
|
||||
counterPanel.setSize(realCardSize.width, realCardSize.height);
|
||||
if (getCounterPanel() != null) {
|
||||
getCounterPanel().setLocation(realCardSize.x, realCardSize.y);
|
||||
getCounterPanel().setSize(realCardSize.width, realCardSize.height);
|
||||
int size = cardWidth > WIDTH_LIMIT ? 40 : 20;
|
||||
|
||||
minusCounterLabel.setLocation(counterPanel.getWidth() - size, counterPanel.getHeight() - size * 2);
|
||||
minusCounterLabel.setLocation(getCounterPanel().getWidth() - size, getCounterPanel().getHeight() - size * 2);
|
||||
minusCounterLabel.setSize(size, size);
|
||||
|
||||
plusCounterLabel.setLocation(5, counterPanel.getHeight() - size * 2);
|
||||
plusCounterLabel.setLocation(5, getCounterPanel().getHeight() - size * 2);
|
||||
plusCounterLabel.setSize(size, size);
|
||||
|
||||
loyaltyCounterLabel.setLocation(counterPanel.getWidth() - size, counterPanel.getHeight() - size);
|
||||
loyaltyCounterLabel.setLocation(getCounterPanel().getWidth() - size, getCounterPanel().getHeight() - size);
|
||||
loyaltyCounterLabel.setSize(size, size);
|
||||
|
||||
otherCounterLabel.setLocation(5, counterPanel.getHeight() - size);
|
||||
otherCounterLabel.setLocation(5, getCounterPanel().getHeight() - size);
|
||||
otherCounterLabel.setSize(size, size);
|
||||
|
||||
}
|
||||
|
|
@ -605,7 +625,7 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
|
||||
@Override
|
||||
public String toString() {
|
||||
return gameCard.toString();
|
||||
return getGameCard().toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -639,8 +659,8 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
|
||||
@Override
|
||||
public void updateArtImage() {
|
||||
tappedAngle = isTapped() ? CardPanel.TAPPED_ANGLE : 0;
|
||||
flippedAngle = isFlipped() ? CardPanel.FLIPPED_ANGLE : 0;
|
||||
setTappedAngle(isTapped() ? CardPanel.TAPPED_ANGLE : 0);
|
||||
setFlippedAngle(isFlipped() ? CardPanel.FLIPPED_ANGLE : 0);
|
||||
|
||||
//final CardView gameCard = this.gameCard;
|
||||
final int stamp = ++updateArtImageStamp;
|
||||
|
|
@ -648,20 +668,20 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
Util.threadPool.submit(() -> {
|
||||
try {
|
||||
final BufferedImage srcImage;
|
||||
if (gameCard.isFaceDown()) {
|
||||
if (getGameCard().isFaceDown()) {
|
||||
srcImage = getFaceDownImage();
|
||||
} else if (getCardWidth() > Constants.THUMBNAIL_SIZE_FULL.width) {
|
||||
srcImage = ImageCache.getImage(gameCard, getCardWidth(), getCardHeight());
|
||||
srcImage = ImageCache.getImage(getGameCard(), getCardWidth(), getCardHeight());
|
||||
} else {
|
||||
srcImage = ImageCache.getThumbnail(gameCard);
|
||||
srcImage = ImageCache.getThumbnail(getGameCard());
|
||||
}
|
||||
if (srcImage == null) {
|
||||
setFullPath(ImageCache.getFilePath(gameCard, getCardWidth()));
|
||||
setFullPath(ImageCache.getFilePath(getGameCard(), getCardWidth()));
|
||||
}
|
||||
UI.invokeLater(() -> {
|
||||
if (stamp == updateArtImageStamp) {
|
||||
hasImage = srcImage != null;
|
||||
setText(gameCard);
|
||||
setText(getGameCard());
|
||||
setImage(srcImage);
|
||||
}
|
||||
});
|
||||
|
|
@ -675,12 +695,12 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
|
||||
private BufferedImage getFaceDownImage() {
|
||||
if (isPermanent()) {
|
||||
if (((PermanentView) gameCard).isMorphed()) {
|
||||
if (((PermanentView) getGameCard()).isMorphed()) {
|
||||
return ImageCache.getMorphImage();
|
||||
} else {
|
||||
return ImageCache.getManifestImage();
|
||||
}
|
||||
} else if (this.gameCard instanceof StackAbilityView) {
|
||||
} else if (this.getGameCard() instanceof StackAbilityView) {
|
||||
return ImageCache.getMorphImage();
|
||||
} else {
|
||||
return ImageCache.getCardbackImage();
|
||||
|
|
@ -690,7 +710,7 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
@Override
|
||||
public void showCardTitle() {
|
||||
displayTitleAnyway = true;
|
||||
setText(gameCard);
|
||||
setText(getGameCard());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -712,13 +732,13 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
|
||||
// Summoning Sickness overlay
|
||||
if (hasSickness() && card.isCreature() && isPermanent()) {
|
||||
overlayPanel.setVisible(true);
|
||||
getOverlayPanel().setVisible(true);
|
||||
} else {
|
||||
overlayPanel.setVisible(false);
|
||||
getOverlayPanel().setVisible(false);
|
||||
}
|
||||
|
||||
// Update counters panel
|
||||
if (counterPanel != null) {
|
||||
if (getCounterPanel() != null) {
|
||||
updateCounters(card);
|
||||
}
|
||||
|
||||
|
|
@ -777,13 +797,13 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
}
|
||||
}
|
||||
|
||||
counterPanel.setVisible(true);
|
||||
getCounterPanel().setVisible(true);
|
||||
} else {
|
||||
plusCounterLabel.setVisible(false);
|
||||
minusCounterLabel.setVisible(false);
|
||||
loyaltyCounterLabel.setVisible(false);
|
||||
otherCounterLabel.setVisible(false);
|
||||
counterPanel.setVisible(false);
|
||||
getCounterPanel().setVisible(false);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -809,10 +829,10 @@ public class CardPanelComponentImpl extends CardPanel {
|
|||
@Override
|
||||
public Image getImage() {
|
||||
if (this.hasImage) {
|
||||
if (gameCard.isFaceDown()) {
|
||||
if (getGameCard().isFaceDown()) {
|
||||
return getFaceDownImage();
|
||||
} else {
|
||||
return ImageCache.getImageOriginal(gameCard);
|
||||
return ImageCache.getImageOriginal(getGameCard());
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -239,7 +239,7 @@ public class CardPanelRenderImpl extends CardPanel {
|
|||
super(newGameCard, gameId, loadImage, callback, foil, dimension);
|
||||
|
||||
// Renderer
|
||||
cardRenderer = cardRendererFactory.create(gameCard, isTransformed());
|
||||
cardRenderer = cardRendererFactory.create(getGameCard(), isTransformed());
|
||||
|
||||
// Draw the parts
|
||||
initialDraw();
|
||||
|
|
@ -265,7 +265,7 @@ public class CardPanelRenderImpl extends CardPanel {
|
|||
if (cardImage == null) {
|
||||
// Try to get card image from cache based on our card characteristics
|
||||
ImageKey key
|
||||
= new ImageKey(gameCard, artImage,
|
||||
= new ImageKey(getGameCard(), artImage,
|
||||
getCardWidth(), getCardHeight(),
|
||||
isChoosable(), isSelected());
|
||||
try {
|
||||
|
|
@ -324,8 +324,8 @@ public class CardPanelRenderImpl extends CardPanel {
|
|||
cardRenderer.setFaceArtImage(null);
|
||||
|
||||
// Stop animation
|
||||
tappedAngle = isTapped() ? CardPanel.TAPPED_ANGLE : 0;
|
||||
flippedAngle = isFlipped() ? CardPanel.FLIPPED_ANGLE : 0;
|
||||
setTappedAngle(isTapped() ? CardPanel.TAPPED_ANGLE : 0);
|
||||
setFlippedAngle(isFlipped() ? CardPanel.FLIPPED_ANGLE : 0);
|
||||
|
||||
// Schedule a repaint
|
||||
repaint();
|
||||
|
|
@ -340,16 +340,16 @@ public class CardPanelRenderImpl extends CardPanel {
|
|||
try {
|
||||
final BufferedImage srcImage;
|
||||
final BufferedImage faceArtSrcImage;
|
||||
if (gameCard.isFaceDown()) {
|
||||
if (getGameCard().isFaceDown()) {
|
||||
// Nothing to do
|
||||
srcImage = null;
|
||||
faceArtSrcImage = null;
|
||||
} else if (getCardWidth() > Constants.THUMBNAIL_SIZE_FULL.width) {
|
||||
srcImage = ImageCache.getImage(gameCard, getCardWidth(), getCardHeight());
|
||||
faceArtSrcImage = ImageCache.getFaceImage(gameCard, getCardWidth(), getCardHeight());
|
||||
srcImage = ImageCache.getImage(getGameCard(), getCardWidth(), getCardHeight());
|
||||
faceArtSrcImage = ImageCache.getFaceImage(getGameCard(), getCardWidth(), getCardHeight());
|
||||
} else {
|
||||
srcImage = ImageCache.getThumbnail(gameCard);
|
||||
faceArtSrcImage = ImageCache.getFaceImage(gameCard, getCardWidth(), getCardHeight());
|
||||
srcImage = ImageCache.getThumbnail(getGameCard());
|
||||
faceArtSrcImage = ImageCache.getFaceImage(getGameCard(), getCardWidth(), getCardHeight());
|
||||
}
|
||||
|
||||
UI.invokeLater(() -> {
|
||||
|
|
@ -382,7 +382,7 @@ public class CardPanelRenderImpl extends CardPanel {
|
|||
|
||||
// Update renderer
|
||||
cardImage = null;
|
||||
cardRenderer = cardRendererFactory.create(gameCard, isTransformed());
|
||||
cardRenderer = cardRendererFactory.create(getGameCard(), isTransformed());
|
||||
cardRenderer.setArtImage(artImage);
|
||||
cardRenderer.setFaceArtImage(faceArtImage);
|
||||
|
||||
|
|
@ -405,12 +405,12 @@ public class CardPanelRenderImpl extends CardPanel {
|
|||
|
||||
private BufferedImage getFaceDownImage() {
|
||||
if (isPermanent()) {
|
||||
if (((PermanentView) gameCard).isMorphed()) {
|
||||
if (((PermanentView) getGameCard()).isMorphed()) {
|
||||
return ImageCache.getMorphImage();
|
||||
} else {
|
||||
return ImageCache.getManifestImage();
|
||||
}
|
||||
} else if (this.gameCard instanceof StackAbilityView) {
|
||||
} else if (this.getGameCard() instanceof StackAbilityView) {
|
||||
return ImageCache.getMorphImage();
|
||||
} else {
|
||||
return ImageCache.getCardbackImage();
|
||||
|
|
@ -440,10 +440,10 @@ public class CardPanelRenderImpl extends CardPanel {
|
|||
@Override
|
||||
public Image getImage() {
|
||||
if (artImage != null) {
|
||||
if (gameCard.isFaceDown()) {
|
||||
if (getGameCard().isFaceDown()) {
|
||||
return getFaceDownImage();
|
||||
} else {
|
||||
return ImageCache.getImageOriginal(gameCard);
|
||||
return ImageCache.getImageOriginal(getGameCard());
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ public class CardInfoPaneImpl extends JEditorPane implements CardInfoPane {
|
|||
SwingUtilities.invokeLater(() -> {
|
||||
TextLines textLines = GuiDisplayUtil.getTextLinesfromCardView(card);
|
||||
StringBuilder buffer = GuiDisplayUtil.getRulefromCardView(card, textLines);
|
||||
resizeTooltipIfNeeded(container, textLines.basicTextLength, textLines.lines.size());
|
||||
resizeTooltipIfNeeded(container, textLines.getBasicTextLength(), textLines.getLines().size());
|
||||
setText(buffer.toString());
|
||||
setCaretPosition(0);
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue