mirror of
https://github.com/correl/mage.git
synced 2024-12-26 03:00:11 +00:00
Merge pull request #4562 from spjspj/master
Fix zendikar full art land drawings. (Travis build failed but didn't seem to be related to Mage.Client)
This commit is contained in:
commit
550b98509c
1 changed files with 21 additions and 34 deletions
|
@ -7,6 +7,7 @@ package org.mage.card.arcane;
|
|||
|
||||
import java.awt.*;
|
||||
import java.awt.font.*;
|
||||
import java.awt.geom.Arc2D;
|
||||
import java.awt.geom.Path2D;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
import java.awt.image.BufferedImage;
|
||||
|
@ -541,15 +542,10 @@ public class ModernCardRenderer extends CardRenderer {
|
|||
|
||||
if (cardView.getFrameStyle() == FrameStyle.ZEN_FULL_ART_BASIC) {
|
||||
// Draw curved lines (old Zendikar land style) - bigger (around 6%) inset on curve on bottom than inset (around 4.5%) on top...
|
||||
int x2 = x;
|
||||
int x2 = x + contentWidth;
|
||||
int y2 = y;
|
||||
int topxdelta = 45 * contentWidth / 1000;
|
||||
int botxdelta = 58 * contentWidth / 1000;
|
||||
int ctrlx = 0;
|
||||
int ctrly = (totalContentInset + y2) / 2;
|
||||
|
||||
drawZendikarCurvedFace(g, image, x + topxdelta, totalContentInset + boxHeight, ctrlx, ctrly, x2 + botxdelta, y2,
|
||||
x + contentWidth - topxdelta, totalContentInset + boxHeight, cardWidth, ctrly, x2 + contentWidth - botxdelta, y2,
|
||||
int thisy = totalContentInset + boxHeight;
|
||||
drawZendikarCurvedFace(g, image, x, thisy, x2, y2,
|
||||
boxColor, borderPaint);
|
||||
} else if (cardView.getFrameStyle() == FrameStyle.BFZ_FULL_ART_BASIC) {
|
||||
// Draw curved lines (BFZ land style)
|
||||
|
@ -574,8 +570,7 @@ public class ModernCardRenderer extends CardRenderer {
|
|||
drawBottomRight(g, borderPaint, boxColor);
|
||||
}
|
||||
|
||||
public void drawZendikarCurvedFace(Graphics2D g2, BufferedImage image, int x, int y, int ctrlx, int ctrly, int w, int h,
|
||||
int x2, int y2, int ctrlx2, int ctrly2, int w2, int h2,
|
||||
public void drawZendikarCurvedFace(Graphics2D g2, BufferedImage image, int x, int y, int x2, int y2,
|
||||
Color boxColor, Paint paint) {
|
||||
|
||||
BufferedImage artToUse = faceArtImage;
|
||||
|
@ -600,33 +595,27 @@ public class ModernCardRenderer extends CardRenderer {
|
|||
}
|
||||
|
||||
Path2D.Double curve = new Path2D.Double();
|
||||
curve.moveTo(x, y);
|
||||
curve.quadTo(ctrlx, ctrly, w, h);
|
||||
curve.lineTo(w2, h);
|
||||
curve.quadTo(ctrlx2, ctrly2, x2, y);
|
||||
curve.lineTo(x, y);
|
||||
|
||||
Path2D.Double innercurve = new Path2D.Double();
|
||||
innercurve.moveTo(x + 1, y + 1);
|
||||
innercurve.quadTo(ctrlx + 1, ctrly + 1, w + 1, h - 1);
|
||||
innercurve.lineTo(w2 - 1, h - 1);
|
||||
innercurve.quadTo(ctrlx2 - 1, ctrly2 - 1, x2 - 1, y + 1);
|
||||
innercurve.lineTo(x + 1, y + 1);
|
||||
int ew = x2 - x;
|
||||
int eh = 700 * (y2 - y) / 335;
|
||||
Arc2D arc = new Arc2D.Double(x, y - 197 * eh / 700, ew, eh, 0, 360, Arc2D.OPEN);
|
||||
Arc2D innerarc = new Arc2D.Double(x + 1, y - 197 * eh / 700 + 1, ew - 2, eh - 2, 0, 360, Arc2D.OPEN);
|
||||
|
||||
curve.append(new Rectangle2D.Double(x, y, x2 - x, y2 - y), false);
|
||||
g2.setClip(new Rectangle2D.Double(x, y, x2 - x, y2 - y));
|
||||
g2.setClip(arc);
|
||||
|
||||
Rectangle2D r = curve.getBounds2D();
|
||||
int minX = (int) r.getX();
|
||||
g2.drawImage(artToUse, x, y, x2 - x, y2 - y, null);
|
||||
g2.setClip(null);
|
||||
g2.setClip(new Rectangle2D.Double(x, y, x2 - x, y2 - y));
|
||||
|
||||
g2.setClip(innercurve);
|
||||
g2.drawImage(artToUse, minX, y, (x2 - x) + (x - minX) * 2, h2 - y, null);
|
||||
g2.setColor(CardRendererUtils.abitdarker(boxColor));
|
||||
g2.draw(arc);
|
||||
g2.setColor(Color.black);
|
||||
g2.draw(innerarc);
|
||||
|
||||
g2.setClip(null);
|
||||
g2.setColor(CardRendererUtils.abitdarker(boxColor));
|
||||
g2.setPaint(paint);
|
||||
g2.draw(curve);
|
||||
|
||||
g2.setColor(Color.black);
|
||||
//curve.transform(AffineTransform.getTranslateInstance(-1,-1));
|
||||
g2.draw(innercurve);
|
||||
}
|
||||
|
||||
public void drawBFZCurvedFace(Graphics2D g2, BufferedImage image, int x, int y, int x2, int y2,
|
||||
|
@ -967,8 +956,7 @@ public class ModernCardRenderer extends CardRenderer {
|
|||
drawBasicManaTextbox(g, x, y, w, h, ((TextboxBasicManaRule) allRules.get(0)).getBasicManaSymbol());
|
||||
return;
|
||||
} else // Big circle in the middle for Zendikar lands
|
||||
{
|
||||
if (allRules.size() == 1) {
|
||||
if (allRules.size() == 1) {
|
||||
// Size of mana symbol = 9/4 * h, 3/4h above line
|
||||
drawBasicManaSymbol(g, x + w / 2 - 9 * h / 8 + 1, y - 3 * h / 4, 9 * h / 4, 9 * h / 4, ((TextboxBasicManaRule) allRules.get(0)).getBasicManaSymbol());
|
||||
return;
|
||||
|
@ -978,7 +966,6 @@ public class ModernCardRenderer extends CardRenderer {
|
|||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Go through possible font sizes in descending order to find the best fit
|
||||
|
|
Loading…
Reference in a new issue