use of megamek.common.SupportTank in project megameklab by MegaMek.
the class PrintVehicle method printTankData.
private void printTankData(Graphics2D g2d) {
String tankName = tank.getChassis() + " " + tank.getModel();
g2d.setFont(UnitUtil.getNewFont(g2d, tankName, true, 180, 10.0f));
g2d.drawString(tankName, 49, 120);
Font font = UnitUtil.deriveFont(8.0f);
g2d.setFont(font);
if ((tank.getCrew() != null) && !tank.getCrew().getName().equalsIgnoreCase("unnamed")) {
Crew pilot = tank.getCrew();
g2d.drawString(pilot.getName(), 270, 120);
g2d.drawString(String.valueOf(pilot.getGunnery()), 295, 132);
g2d.drawString(String.valueOf(pilot.getPiloting()), 365, 132);
}
g2d.drawString(Integer.toString(tank.getWalkMP()), 79, 144);
if (!tank.hasWorkingMisc(MiscType.F_MASC, MiscType.S_SUPERCHARGER)) {
g2d.drawString(Integer.toString(tank.getRunMP()), 79, 154);
} else {
int mascMP = tank.getRunMP();
g2d.drawString(Integer.toString(tank.getRunMPwithoutMASC()) + " [" + mascMP + "]", 79, 154);
}
if (tank.getJumpMP() > 0) {
font = UnitUtil.deriveFont(true, 8f);
g2d.setFont(font);
g2d.drawString("Jump:", 92, 154f);
font = UnitUtil.deriveFont(false, 8f);
g2d.setFont(font);
g2d.drawString(Integer.toString(tank.getJumpMP()), 120, 154f);
}
g2d.drawString(tank.getMovementModeAsString(), 88, 165);
String engineName = "Fusion Engine";
switch(tank.getEngine().getEngineType()) {
case Engine.COMBUSTION_ENGINE:
engineName = "I.C.E.";
break;
case Engine.LIGHT_ENGINE:
engineName = "Light Fusion Engine";
break;
case Engine.XL_ENGINE:
engineName = "XL Fusion Engine";
break;
case Engine.XXL_ENGINE:
engineName = "XXL Fusion Engine";
break;
case Engine.COMPACT_ENGINE:
engineName = "Compact Fusion Engine";
break;
case Engine.FUEL_CELL:
if (tank instanceof SupportTank) {
engineName = "Electric (Fuel Cell) Engine";
} else {
engineName = "Fuel Cell Engine";
}
break;
case Engine.FISSION:
engineName = "Fission Engine";
break;
case Engine.SOLAR:
engineName = "Electric (Solar) Engine";
break;
case Engine.BATTERY:
engineName = "Electric (Batteries) Engine";
break;
case Engine.STEAM:
engineName = "Steam Engine";
break;
case Engine.MAGLEV:
engineName = "MagLev Engine";
break;
case Engine.NONE:
engineName = "None";
break;
default:
break;
}
g2d.drawString(engineName, 79, 176);
if (tank.getWeight() >= 5) {
int tonnage = (int) Math.ceil(tank.getWeight());
g2d.drawString(Integer.toString(tonnage), 177, 133);
} else {
g2d.drawString(String.format("%1$,.1f", tank.getWeight()), 177, 133);
}
int nextDataLine = 153;
int startLine = 188;
int lineFeed = 8;
switch(tank.getTechLevel()) {
case TechConstants.T_INTRO_BOXSET:
ImageHelper.printCenterString(g2d, "(Intro)", font, startLine, nextDataLine);
nextDataLine += lineFeed;
break;
case TechConstants.T_IS_TW_NON_BOX:
case TechConstants.T_IS_TW_ALL:
case TechConstants.T_CLAN_TW:
break;
case TechConstants.T_IS_ADVANCED:
case TechConstants.T_CLAN_ADVANCED:
ImageHelper.printCenterString(g2d, "(Advanced)", font, startLine, nextDataLine);
nextDataLine += lineFeed;
break;
case TechConstants.T_IS_EXPERIMENTAL:
case TechConstants.T_CLAN_EXPERIMENTAL:
ImageHelper.printCenterString(g2d, "(Experimental)", font, startLine, nextDataLine);
nextDataLine += lineFeed;
break;
case TechConstants.T_IS_UNOFFICIAL:
case TechConstants.T_CLAN_UNOFFICIAL:
ImageHelper.printCenterString(g2d, "(Unofficial)", font, startLine, nextDataLine);
nextDataLine += lineFeed;
break;
}
String techBase = "Inner Sphere";
if (tank.isMixedTech()) {
if (tank.isClan()) {
techBase = "Mixed Tech (Clan)";
} else {
techBase = "Mixed Tech (I.S.)";
}
} else if (tank.isClan()) {
techBase = "Clan";
}
g2d.drawString(techBase, 177, 144);
if ((tank.getSource() != null) && (tank.getSource().trim().length() > 0)) {
String sourceFluff = "Era: ";
font = UnitUtil.deriveFont(true, 8.0f);
g2d.setFont(font);
g2d.drawString(sourceFluff, 138, nextDataLine);
font = UnitUtil.getNewFont(g2d, tank.getSource(), false, 51, 8.0f);
g2d.setFont(font);
g2d.drawString(tank.getSource(), 177, nextDataLine);
} else {
String yearFluff = "Year: ";
font = UnitUtil.deriveFont(true, 8.0f);
g2d.setFont(font);
g2d.drawString(yearFluff, 138, nextDataLine);
font = UnitUtil.deriveFont(8.0f);
g2d.setFont(font);
g2d.drawString(String.format("%1$s", tank.getYear()), 177, nextDataLine);
}
// g2d.drawString(Integer.toString(tank.getYear()), 188, 155);
// Cost/BV
// DecimalFormatSymbols unusualSymbols =
// new DecimalFormatSymbols();
// unusualSymbols.setDecimalSeparator('.');
// unusualSymbols.setGroupingSeparator(',');
// DecimalFormat myFormatter = new DecimalFormat("#,###",
// unusualSymbols);
double bv = tank.calculateBattleValue(true, true);
if (bv != -1) {
font = UnitUtil.deriveFont(true, 8);
g2d.setFont(font);
g2d.drawString("BV: ", 35, 357);
font = UnitUtil.deriveFont(false, 8);
g2d.setFont(font);
g2d.drawString(String.format("%1$,d", tank.calculateBattleValue(true, true)), 50, 357);
}
if (UnitUtil.hasBAR(tank)) {
font = UnitUtil.deriveFont(true, 9.0f);
g2d.drawString("BAR: " + UnitUtil.getLowestBARRating(tank), 400, 64);
}
font = UnitUtil.deriveFont(true, 7f);
g2d.setFont(font);
g2d.drawString(Integer.toString(Calendar.getInstance().get(Calendar.YEAR)), 62.5f, 374.5f);
g2d.drawString(Integer.toString(Calendar.getInstance().get(Calendar.YEAR)), 62.5f, 374.5f + secondPageMargin);
if (tank2 != null) {
printTank2Data(g2d);
}
}
Aggregations