Search in sources :

Example 1 with CardDimensions

use of mage.cards.CardDimensions in project mage by magefree.

the class DraftGrid method loadBooster.

public void loadBooster(CardsView booster, BigCard bigCard) {
    if (booster != null && booster.isEmpty()) {
        emptyGrid = true;
    } else {
        if (!emptyGrid) {
            AudioManager.playOnDraftSelect();
        }
        emptyGrid = false;
    }
    this.bigCard = bigCard;
    this.removeAll();
    int maxRows = 4;
    int numColumns = 5;
    int curColumn = 0;
    int curRow = 0;
    int offsetX = 5;
    int offsetY = 3;
    CardDimensions cardDimension = null;
    int maxCards;
    double scale;
    for (int i = 1; i < maxRows; i++) {
        scale = (double) (this.getHeight() / i) / Constants.FRAME_MAX_HEIGHT;
        cardDimension = new CardDimensions(scale);
        maxCards = this.getWidth() / (cardDimension.getFrameWidth() + offsetX);
        if ((maxCards * i) >= booster.size()) {
            numColumns = booster.size() / i;
            if (booster.size() % i > 0) {
                numColumns++;
            }
            break;
        }
    }
    if (cardDimension != null) {
        Rectangle rectangle = new Rectangle(cardDimension.getFrameWidth(), cardDimension.getFrameHeight());
        Dimension dimension = new Dimension(cardDimension.getFrameWidth(), cardDimension.getFrameHeight());
        List<CardView> sortedCards = new ArrayList<>(booster.values());
        sortedCards.sort(new CardViewRarityComparator());
        for (CardView card : sortedCards) {
            MageCard cardImg = Plugins.instance.getMageCard(card, bigCard, new CardIconRenderSettings(), dimension, null, true, true, PreferencesDialog.getRenderMode(), true);
            cardImg.setCardContainerRef(this);
            cardImg.update(card);
            this.add(cardImg);
            rectangle.setLocation(curColumn * (cardDimension.getFrameWidth() + offsetX) + offsetX, curRow * (rectangle.height + offsetY) + offsetY);
            cardImg.setCardBounds(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
            curColumn++;
            if (curColumn == numColumns) {
                curColumn = 0;
                curRow++;
            }
        }
        repaint();
    } else {
        logger.warn("Draft Grid - no possible fit of cards");
    }
}
Also used : CardViewRarityComparator(mage.client.util.comparators.CardViewRarityComparator) CardView(mage.view.CardView) ArrayList(java.util.ArrayList) CardDimensions(mage.cards.CardDimensions) MageCard(mage.cards.MageCard) CardIconRenderSettings(mage.abilities.icon.CardIconRenderSettings)

Example 2 with CardDimensions

use of mage.cards.CardDimensions in project mage by magefree.

the class MageBook method initComponents.

private void initComponents() {
    setOpaque(false);
    setSize(conf.WIDTH, conf.HEIGHT);
    setPreferredSize(new Dimension(conf.WIDTH, conf.HEIGHT));
    setMinimumSize(new Dimension(conf.WIDTH, conf.HEIGHT));
    jPanelLeft = getImagePanel(LEFT_PANEL_IMAGE_PATH, ImagePanelStyle.TILED);
    jPanelLeft.setPreferredSize(new Dimension(LEFT_RIGHT_PAGES_WIDTH, 0));
    jPanelLeft.setLayout(null);
    jPanelCenter = getImagePanel(CENTER_PANEL_IMAGE_PATH, ImagePanelStyle.SCALED);
    jPanelCenter.setLayout(new BorderLayout());
    jPanelRight = getImagePanel(RIGHT_PANEL_IMAGE_PATH, ImagePanelStyle.TILED);
    jPanelRight.setPreferredSize(new Dimension(LEFT_RIGHT_PAGES_WIDTH, 0));
    jPanelRight.setLayout(null);
    jLayeredPane = new JLayeredPane();
    jPanelCenter.add(jLayeredPane, BorderLayout.CENTER);
    Image image = ImageHelper.loadImage(LEFT_PAGE_BUTTON_IMAGE_PATH);
    pageLeft = new HoverButton(null, image, image, image, new Rectangle(64, 64));
    pageLeft.setBounds(0, 0, 64, 64);
    pageLeft.setVisible(false);
    pageLeft.setObserver(() -> {
        currentPage--;
        if (currentPage == 0) {
            pageLeft.setVisible(false);
        }
        pageRight.setVisible(true);
        AudioManager.playPrevPage();
        showCardsOrTokens();
    });
    image = ImageHelper.loadImage(RIGHT_PAGE_BUTTON_IMAGE_PATH);
    pageRight = new HoverButton(null, image, image, image, new Rectangle(64, 64));
    pageRight.setBounds(conf.WIDTH - 2 * LEFT_RIGHT_PAGES_WIDTH - 64, 0, 64, 64);
    pageRight.setVisible(false);
    pageRight.setObserver(() -> {
        currentPage++;
        pageLeft.setVisible(true);
        pageRight.setVisible(false);
        AudioManager.playNextPage();
        showCardsOrTokens();
    });
    addSetTabs();
    setLayout(new BorderLayout());
    add(jPanelLeft, BorderLayout.LINE_START);
    add(jPanelCenter, BorderLayout.CENTER);
    add(jPanelRight, BorderLayout.LINE_END);
    // caption size = next-prev images
    int captionHeight = Math.max(30, pageLeft.getHeight());
    // Top Panel (left page + (caption / stats) + right page
    jPanelTop = new JPanel();
    jPanelTop.setLayout(new BorderLayout());
    jPanelTop.setPreferredSize(new Dimension(captionHeight, captionHeight));
    jPanelCenter.add(jPanelTop, BorderLayout.NORTH);
    // page left
    pageRight.setPreferredSize(new Dimension(pageRight.getWidth(), pageRight.getHeight()));
    jPanelTop.add(pageRight, BorderLayout.EAST);
    // page right
    pageLeft.setPreferredSize(new Dimension(pageLeft.getWidth(), pageLeft.getHeight()));
    jPanelTop.add(pageLeft, BorderLayout.WEST);
    // Caption Panel
    jPanelCaption = new JPanel();
    jPanelCaption.setLayout(new BorderLayout());
    jPanelCaption.setOpaque(false);
    jPanelTop.add(jPanelCaption, BorderLayout.CENTER);
    // set's caption
    setCaption = new JLabel();
    setCaption.setHorizontalAlignment(SwingConstants.CENTER);
    setCaption.setFont(jLayeredPane.getFont().deriveFont(25f));
    setCaption.setText("EMPTY CAPTION");
    jPanelCaption.add(setCaption, BorderLayout.NORTH);
    // set's info
    setInfo = new JLabel();
    setInfo.setHorizontalAlignment(SwingConstants.CENTER);
    setInfo.setFont(jLayeredPane.getFont().deriveFont(17f));
    setInfo.setText("EMPTY STATS");
    jPanelCaption.add(setInfo, BorderLayout.SOUTH);
    cardDimensions = new CardDimensions(0.45d);
}
Also used : HoverButton(mage.client.components.HoverButton) CardDimensions(mage.cards.CardDimensions) BufferedImage(java.awt.image.BufferedImage)

Aggregations

CardDimensions (mage.cards.CardDimensions)2 BufferedImage (java.awt.image.BufferedImage)1 ArrayList (java.util.ArrayList)1 CardIconRenderSettings (mage.abilities.icon.CardIconRenderSettings)1 MageCard (mage.cards.MageCard)1 HoverButton (mage.client.components.HoverButton)1 CardViewRarityComparator (mage.client.util.comparators.CardViewRarityComparator)1 CardView (mage.view.CardView)1