Search in sources :

Example 1 with Bay

use of megamek.common.Bay in project megameklab by MegaMek.

the class ImageHelperDropShip method printDropShipCargo.

public static void printDropShipCargo(Dropship dropship, Graphics2D g2d, float pointY) {
    if (dropship.getTransportBays().size() < 1) {
        return;
    }
    float pointX = 22;
    double lineFeed = ImageHelper.getStringHeight(g2d, "H", g2d.getFont());
    Font font = UnitUtil.deriveFont(true, g2d.getFont().getSize2D());
    g2d.setFont(font);
    pointY += lineFeed;
    g2d.drawString("Cargo: ", pointX, pointY);
    pointY += lineFeed;
    font = UnitUtil.deriveFont(g2d.getFont().getSize2D());
    g2d.setFont(font);
    Map<Integer, List<Bay>> baySetup = new HashMap<Integer, List<Bay>>();
    for (Bay bay : dropship.getTransportBays()) {
        if (bay.isQuarters()) {
            continue;
        }
        if (baySetup.get(bay.getBayNumber()) == null) {
            List<Bay> list = new ArrayList<Bay>();
            list.add(bay);
            baySetup.put(bay.getBayNumber(), list);
        } else {
            baySetup.get(bay.getBayNumber()).add(bay);
        }
    }
    for (int bayNumber : baySetup.keySet()) {
        List<Bay> bays = baySetup.get(bayNumber);
        if (bayNumber == 0) {
            for (Bay bay : bays) {
                g2d.drawString(ImageHelperDropShip.getBayString(bay), pointX, pointY);
                pointY += lineFeed;
            }
        } else {
            String bayString = "Bay " + bayNumber + ":  ";
            g2d.drawString(bayString, pointX, pointY);
            float offsetWidth = ImageHelper.getStringWidth(g2d, bayString, g2d.getFont());
            for (Bay bay : bays) {
                g2d.drawString(ImageHelperDropShip.getBayString(bay), pointX + offsetWidth, pointY);
                pointY += lineFeed;
            }
        }
    }
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) Bay(megamek.common.Bay) Font(java.awt.Font)

Example 2 with Bay

use of megamek.common.Bay in project megameklab by MegaMek.

the class ImageHelperVehicle method printLargeSupportTankWeaponsNEquipment.

public static void printLargeSupportTankWeaponsNEquipment(Tank tank, Graphics2D g2d, float yoffset, float xoffset) {
    float qtyPoint = 26 + xoffset;
    float typePoint = 38 + xoffset;
    float locPoint = 124 + xoffset;
    float damagePoint = 150 + xoffset;
    float minPoint = 166 + xoffset;
    float shtPoint = 179 + xoffset;
    float medPoint = 195 + xoffset;
    float longPoint = 211 + xoffset;
    float maxHeight = 130.0f;
    float linePoint = 212f + yoffset;
    float lineFeed = 6.7f;
    boolean newLineNeeded = false;
    ArrayList<Hashtable<String, EquipmentInfo>> equipmentLocations = new ArrayList<Hashtable<String, EquipmentInfo>>(tank.locations());
    for (int pos = 0; pos <= tank.locations(); pos++) {
        equipmentLocations.add(pos, new Hashtable<String, EquipmentInfo>());
    }
    for (Mounted eq : tank.getEquipment()) {
        if ((eq.getType() instanceof AmmoType) || (eq.getLocation() == Entity.LOC_NONE) || !UnitUtil.isPrintableEquipment(eq.getType(), false)) {
            continue;
        }
        Hashtable<String, EquipmentInfo> eqHash = equipmentLocations.get(eq.getLocation());
        String equipmentName = eq.getName();
        if (eq.isRearMounted()) {
            equipmentName += "(R)";
        }
        if (eqHash.containsKey(equipmentName)) {
            EquipmentInfo eqi = eqHash.get(equipmentName);
            if (eq.getType().getTechLevel(tank.getTechLevelYear()) != eqi.techLevel) {
                eqi = new EquipmentInfo(tank, eq);
            } else {
                eqi.count++;
            }
            eqHash.put(equipmentName, eqi);
        } else {
            EquipmentInfo eqi = new EquipmentInfo(tank, eq);
            eqHash.put(equipmentName, eqi);
        }
    }
    if (tank.getTroopCarryingSpace() > 0) {
        maxHeight -= lineFeed;
    }
    if (tank.hasWorkingMisc(MiscType.F_CHASSIS_MODIFICATION)) {
        maxHeight -= lineFeed;
    }
    if (tank.getTransportBays().size() > 0) {
        maxHeight -= lineFeed;
    }
    for (@SuppressWarnings("unused") Bay bay : tank.getTransportBays()) {
        maxHeight -= lineFeed;
    }
    if (tank.getAmmo().size() > 0) {
        maxHeight -= lineFeed;
    }
    g2d.setFont(UnitUtil.deriveFont(false, 7.0f));
    Font font = ImageHelperVehicle.getVehicleWeaponsNEquipmentFont(g2d, false, maxHeight, equipmentLocations, 7.0f);
    g2d.setFont(font);
    float stringHeight = ImageHelper.getStringHeight(g2d, "H", font);
    lineFeed = stringHeight;
    for (int pos = 0; pos <= tank.locations(); pos++) {
        Hashtable<String, EquipmentInfo> eqHash = equipmentLocations.get(pos);
        if (eqHash.size() < 1) {
            continue;
        }
        int count = 0;
        ArrayList<EquipmentInfo> equipmentList = new ArrayList<EquipmentInfo>();
        for (EquipmentInfo eqi : eqHash.values()) {
            equipmentList.add(eqi);
        }
        Collections.sort(equipmentList, StringUtils.equipmentInfoComparator());
        for (EquipmentInfo eqi : equipmentList) {
            newLineNeeded = false;
            if (count >= 12) {
                break;
            }
            g2d.drawString(Integer.toString(eqi.count), qtyPoint, linePoint);
            String name = eqi.name.trim();
            g2d.setFont(UnitUtil.getNewFont(g2d, name, false, 65, 7.0f));
            if (eqi.c3Level == EquipmentInfo.C3I) {
                ImageHelper.printC3iName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3EM) {
                ImageHelper.printC3EmName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3S) {
                ImageHelper.printC3sName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3M) {
                ImageHelper.printC3mName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3SB) {
                ImageHelper.printC3sbName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3MB) {
                ImageHelper.printC3mbName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3REMOTESENSOR) {
                ImageHelper.printC3RemoteSensorName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.isMashCore) {
                ImageHelper.printMashCore(g2d, typePoint, linePoint, font, false, tank);
            } else if (eqi.isDroneControl) {
                ImageHelper.printDroneControl(g2d, typePoint, linePoint, font, false, tank);
            } else {
                g2d.drawString(name, typePoint, linePoint);
            }
            g2d.setFont(font);
            String location = tank.getLocationAbbr(pos);
            if (eqi.isSponsonMounted) {
                location += "po";
            }
            if (eqi.isPintleMounted) {
                location = location.substring(1) + "Pi";
            }
            g2d.setFont(UnitUtil.getNewFont(g2d, location, false, 18, 7));
            g2d.drawString(location, locPoint, linePoint);
            g2d.setFont(UnitUtil.deriveFont(7));
            if (eqi.isWeapon) {
                if (eqi.isMML) {
                    ImageHelper.printCenterString(g2d, "[M,S,C]", font, damagePoint, linePoint);
                    linePoint += lineFeed - 1.0f;
                    g2d.drawString("LRM", typePoint, linePoint);
                    ImageHelper.printCenterString(g2d, "1/Msl", font, damagePoint, linePoint);
                    g2d.drawString("6", minPoint, linePoint);
                    g2d.drawString("7", shtPoint, linePoint);
                    g2d.drawString("14", medPoint, linePoint);
                    g2d.drawString("21", longPoint, linePoint);
                    linePoint += lineFeed - 1.0f;
                    g2d.drawString("SRM", typePoint, linePoint);
                    ImageHelper.printCenterString(g2d, "2/Msl", font, damagePoint, linePoint);
                    g2d.drawString("\u2014", minPoint, linePoint);
                    // g2d.drawLine(minPoint, (int) linePoint - 2, minPoint + 6, (int) linePoint - 2);
                    g2d.drawString("3", shtPoint, linePoint);
                    g2d.drawString("6", medPoint, linePoint);
                    g2d.drawString("9", longPoint, linePoint);
                } else if (eqi.isATM) {
                    ImageHelper.printCenterString(g2d, "[M,S,C]", font, damagePoint, linePoint);
                    linePoint += lineFeed - 1.0f;
                    g2d.drawString("Standard", typePoint, linePoint);
                    ImageHelper.printCenterString(g2d, "2/Msl", font, damagePoint, linePoint);
                    g2d.drawString("4", minPoint, linePoint);
                    g2d.drawString("5", shtPoint, linePoint);
                    g2d.drawString("10", medPoint, linePoint);
                    g2d.drawString("15", longPoint, linePoint);
                    linePoint += lineFeed - 1.0f;
                    g2d.drawString("Extended-Range", typePoint, linePoint);
                    ImageHelper.printCenterString(g2d, "1/Msl", font, damagePoint, linePoint);
                    g2d.drawString("4", minPoint, linePoint);
                    g2d.drawString("9", shtPoint, linePoint);
                    g2d.drawString("18", medPoint, linePoint);
                    g2d.drawString("27", longPoint, linePoint);
                    linePoint += lineFeed - 1.0f;
                    g2d.drawString("High-Explosive", typePoint, linePoint);
                    ImageHelper.printCenterString(g2d, "3/Msl", font, damagePoint, linePoint);
                    g2d.drawString("\u2014", minPoint, linePoint);
                    // g2d.drawLine(minPoint, (int) linePoint - 2, minPoint + 6, (int) linePoint - 2);
                    g2d.drawString("3", shtPoint, linePoint);
                    g2d.drawString("6", medPoint, linePoint);
                    g2d.drawString("9", longPoint, linePoint);
                } else {
                    if (ImageHelper.getStringWidth(g2d, eqi.damage.trim(), font) > 22) {
                        ImageHelper.printCenterString(g2d, eqi.damage.substring(0, eqi.damage.indexOf('[')), font, damagePoint, linePoint);
                        ImageHelper.printCenterString(g2d, eqi.damage.substring(eqi.damage.indexOf('[')), font, damagePoint, (linePoint + lineFeed) - 1.0f);
                        newLineNeeded = true;
                    } else {
                        ImageHelper.printCenterString(g2d, eqi.damage, font, damagePoint, linePoint);
                    }
                    if (eqi.minRange > 0) {
                        g2d.drawString(Integer.toString(eqi.minRange), minPoint, linePoint);
                    } else {
                        g2d.drawString("\u2014", minPoint, linePoint);
                    // g2d.drawLine(minPoint, (int) linePoint - 2, minPoint + 6, (int) linePoint - 2);
                    }
                    g2d.drawString(Integer.toString(eqi.shtRange), shtPoint, linePoint);
                    g2d.drawString(Integer.toString(eqi.medRange), medPoint, linePoint);
                    if (eqi.longRange > 0) {
                        g2d.drawString(Integer.toString(eqi.longRange), longPoint, (int) linePoint);
                    } else {
                        g2d.drawString("\u2014", longPoint, linePoint);
                    // g2d.drawLine(longPoint, (int) linePoint - 2, longPoint + 6, (int) linePoint - 2);
                    }
                }
            } else {
                ImageHelper.printCenterString(g2d, eqi.damage, font, damagePoint - 2, linePoint);
                g2d.drawString("\u2014", minPoint, linePoint);
                g2d.drawString("\u2014", shtPoint, linePoint);
                g2d.drawString("\u2014", medPoint, linePoint);
                // g2d.drawLine(medPoint, (int) linePoint - 2, medPoint + 6, (int) linePoint - 2);
                if (eqi.longRange > 0) {
                    g2d.drawString(Integer.toString(eqi.longRange), longPoint, (int) linePoint);
                } else {
                    g2d.drawString("\u2014", longPoint, linePoint);
                // g2d.drawLine(longPoint, (int) linePoint - 2, longPoint + 6, (int) linePoint - 2);
                }
            }
            if (eqi.hasArtemis) {
                g2d.drawString("w/Artemis IV FCS", typePoint, linePoint + lineFeed);
                newLineNeeded = true;
            } else if (eqi.hasArtemisV) {
                g2d.drawString("w/Artemis V FCS", typePoint, linePoint + lineFeed);
                newLineNeeded = true;
            } else if (eqi.hasApollo) {
                g2d.drawString("w/Apollo FCS", typePoint, linePoint + lineFeed);
                newLineNeeded = true;
            }
            linePoint += lineFeed;
            if (newLineNeeded) {
                linePoint += lineFeed;
            }
            count++;
        }
    }
    if (tank.hasWorkingMisc(MiscType.F_CHASSIS_MODIFICATION)) {
        linePoint += lineFeed;
        String chassisMods = "Chassis Modifications: ";
        for (Mounted misc : tank.getMisc()) {
            if (misc.getType().hasFlag(MiscType.F_CHASSIS_MODIFICATION)) {
                chassisMods += misc.getName() + ", ";
            }
        }
        chassisMods = chassisMods.substring(0, chassisMods.length() - 2);
        g2d.setFont(UnitUtil.getNewFont(g2d, chassisMods, false, 200, 7.0f));
        g2d.drawString(chassisMods, qtyPoint, linePoint);
        g2d.setFont(font);
    }
    ImageHelperVehicle.printLargeVehicleCargo(tank, g2d, linePoint, xoffset, 0);
    ImageHelper.printVehicleAmmo(tank, g2d, yoffset, xoffset);
}
Also used : Hashtable(java.util.Hashtable) ArrayList(java.util.ArrayList) Font(java.awt.Font) AmmoType(megamek.common.AmmoType) Mounted(megamek.common.Mounted) Bay(megamek.common.Bay)

Example 3 with Bay

use of megamek.common.Bay in project megameklab by MegaMek.

the class ImageHelperVehicle method printTankWeaponsNEquipment.

public static void printTankWeaponsNEquipment(Tank tank, Graphics2D g2d, float yoffset, int xoffset) {
    int qtyPoint = 26 + xoffset;
    int typePoint = 38 + xoffset;
    int locPoint = 127 + xoffset;
    int damagePoint = 150 + xoffset;
    int minPoint = 167 + xoffset;
    int shtPoint = 182 + xoffset;
    int medPoint = 198 + xoffset;
    int longPoint = 213 + xoffset;
    float maxHeight = 130.3f;
    float linePoint = 212f + yoffset;
    float lineFeed = 6.7f;
    boolean newLineNeeded = false;
    ArrayList<Hashtable<String, EquipmentInfo>> equipmentLocations = new ArrayList<Hashtable<String, EquipmentInfo>>(tank.locations());
    for (int pos = 0; pos <= tank.locations(); pos++) {
        equipmentLocations.add(pos, new Hashtable<String, EquipmentInfo>());
    }
    for (Mounted eq : tank.getEquipment()) {
        if ((eq.getType() instanceof AmmoType) || (eq.getLocation() == Entity.LOC_NONE) || (!UnitUtil.isPrintableEquipment(eq.getType(), false))) {
            continue;
        }
        Hashtable<String, EquipmentInfo> eqHash = equipmentLocations.get(eq.getLocation());
        String equipmentName = eq.getName();
        if (eq.isRearMounted()) {
            equipmentName += "(R)";
        }
        if (eqHash.containsKey(equipmentName)) {
            EquipmentInfo eqi = eqHash.get(equipmentName);
            if (eq.getType().getTechLevel(tank.getTechLevelYear()) != eqi.techLevel) {
                eqi = new EquipmentInfo(tank, eq);
            } else {
                eqi.count++;
            }
            eqHash.put(equipmentName, eqi);
        } else {
            EquipmentInfo eqi = new EquipmentInfo(tank, eq);
            eqHash.put(equipmentName, eqi);
        }
    }
    if (tank.getTroopCarryingSpace() > 0) {
        maxHeight -= lineFeed;
    }
    if (tank.hasWorkingMisc(MiscType.F_CHASSIS_MODIFICATION)) {
        maxHeight -= lineFeed;
    }
    for (@SuppressWarnings("unused") Bay bay : tank.getTransportBays()) {
        maxHeight -= lineFeed;
    }
    if (tank.getAmmo().size() > 0) {
        maxHeight -= lineFeed;
    }
    g2d.setFont(UnitUtil.deriveFont(false, 7.0f));
    Font font = ImageHelperVehicle.getVehicleWeaponsNEquipmentFont(g2d, false, maxHeight, equipmentLocations, 7.0f);
    g2d.setFont(font);
    float stringHeight = ImageHelper.getStringHeight(g2d, "H", font);
    lineFeed = stringHeight;
    for (int pos = Tank.LOC_BODY; pos <= tank.locations(); pos++) {
        Hashtable<String, EquipmentInfo> eqHash = equipmentLocations.get(pos);
        if (eqHash.size() < 1) {
            continue;
        }
        ArrayList<EquipmentInfo> equipmentList = new ArrayList<EquipmentInfo>();
        for (EquipmentInfo eqi : eqHash.values()) {
            equipmentList.add(eqi);
        }
        Collections.sort(equipmentList, StringUtils.equipmentInfoComparator());
        for (EquipmentInfo eqi : equipmentList) {
            newLineNeeded = false;
            g2d.drawString(Integer.toString(eqi.count), qtyPoint, linePoint);
            String name = eqi.name.trim();
            g2d.setFont(UnitUtil.getNewFont(g2d, name, false, 75, font.getSize2D()));
            if (eqi.c3Level == EquipmentInfo.C3I) {
                ImageHelper.printC3iName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3EM) {
                ImageHelper.printC3EmName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3S) {
                ImageHelper.printC3sName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3M) {
                ImageHelper.printC3mName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3SB) {
                ImageHelper.printC3sbName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3MB) {
                ImageHelper.printC3mbName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3REMOTESENSOR) {
                ImageHelper.printC3RemoteSensorName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.isMashCore) {
                ImageHelper.printMashCore(g2d, typePoint, linePoint, font, false, tank);
            } else if (eqi.isDroneControl) {
                ImageHelper.printDroneControl(g2d, typePoint, linePoint, font, false, tank);
            } else {
                g2d.drawString(name, typePoint, linePoint);
            }
            g2d.setFont(font);
            String location = tank.getLocationAbbr(pos);
            // LS and RS, which results in "LSpo" and "RSpo"
            if (eqi.isSponsonMounted) {
                location += "po";
            }
            if (eqi.isPintleMounted) {
                location = location.substring(1) + "Pi";
            }
            g2d.setFont(font);
            g2d.drawString(location, locPoint, linePoint);
            if (eqi.isWeapon) {
                if (eqi.isAMS) {
                    g2d.drawString("\u2014", damagePoint, linePoint);
                    g2d.drawString("\u2014", minPoint, linePoint);
                    g2d.drawString("\u2014", shtPoint, linePoint);
                    g2d.drawString("\u2014", medPoint, linePoint);
                    g2d.drawString("\u2014", longPoint, linePoint);
                // g2d.drawLine(damagePoint, (int) linePoint - 2, damagePoint + 6, (int) linePoint - 2);
                // g2d.drawLine(minPoint, (int) linePoint - 2, minPoint + 6, (int) linePoint - 2);
                // g2d.drawLine(shtPoint, (int) linePoint - 2, shtPoint + 6, (int) linePoint - 2);
                // g2d.drawLine(medPoint, (int) linePoint - 2, medPoint + 6, (int) linePoint - 2);
                // g2d.drawLine(longPoint, (int) linePoint - 2, longPoint + 6, (int) linePoint - 2);
                } else if (eqi.isMML) {
                    ImageHelper.printCenterString(g2d, "[M,S,C]", font, damagePoint, linePoint);
                    linePoint += lineFeed - 1.0f;
                    g2d.drawString("LRM", typePoint, linePoint);
                    ImageHelper.printCenterString(g2d, "1/Msl", font, damagePoint, linePoint);
                    g2d.drawString("6", minPoint, linePoint);
                    g2d.drawString("7", shtPoint, linePoint);
                    g2d.drawString("14", medPoint, linePoint);
                    g2d.drawString("21", longPoint, linePoint);
                    linePoint += lineFeed - 1.0f;
                    g2d.drawString("SRM", typePoint, linePoint);
                    ImageHelper.printCenterString(g2d, "2/Msl", font, damagePoint, linePoint);
                    g2d.drawString("\u2014", minPoint, linePoint);
                    // g2d.drawLine(minPoint, (int) linePoint - 2, minPoint + 6, (int) linePoint - 2);
                    g2d.drawString("3", shtPoint, linePoint);
                    g2d.drawString("6", medPoint, linePoint);
                    g2d.drawString("9", longPoint, linePoint);
                } else if (eqi.isATM) {
                    ImageHelper.printCenterString(g2d, "[M,S,C]", font, damagePoint, linePoint);
                    linePoint += lineFeed - 1.0f;
                    g2d.drawString("Standard", typePoint, linePoint);
                    ImageHelper.printCenterString(g2d, "2/Msl", font, damagePoint, linePoint);
                    g2d.drawString("4", minPoint, linePoint);
                    g2d.drawString("5", shtPoint, linePoint);
                    g2d.drawString("10", medPoint, linePoint);
                    g2d.drawString("15", longPoint, linePoint);
                    linePoint += lineFeed - 1.0f;
                    g2d.drawString("Extended-Range", typePoint, linePoint);
                    ImageHelper.printCenterString(g2d, "1/Msl", font, damagePoint, linePoint);
                    g2d.drawString("4", minPoint, linePoint);
                    g2d.drawString("9", shtPoint, linePoint);
                    g2d.drawString("18", medPoint, linePoint);
                    g2d.drawString("27", longPoint, linePoint);
                    linePoint += lineFeed - 1.0f;
                    g2d.drawString("High-Explosive", typePoint, linePoint);
                    ImageHelper.printCenterString(g2d, "3/Msl", font, damagePoint, linePoint);
                    g2d.drawString("\u2014", minPoint, linePoint);
                    // g2d.drawLine(minPoint, (int) linePoint - 2, minPoint + 6, (int) linePoint - 2);
                    g2d.drawString("3", shtPoint, linePoint);
                    g2d.drawString("6", medPoint, linePoint);
                    g2d.drawString("9", longPoint, linePoint);
                } else {
                    if (ImageHelper.getStringWidth(g2d, eqi.damage.trim(), font) > 22) {
                        g2d.setFont(UnitUtil.deriveFont(g2d.getFont().getSize2D() - 1));
                        ImageHelper.printCenterString(g2d, eqi.damage.substring(0, eqi.damage.indexOf('[')), font, damagePoint, linePoint);
                        g2d.setFont(font);
                        ImageHelper.printCenterString(g2d, eqi.damage.substring(eqi.damage.indexOf('[')), font, damagePoint, (linePoint + lineFeed) - 1.0f);
                        newLineNeeded = true;
                    } else {
                        ImageHelper.printCenterString(g2d, eqi.damage, font, damagePoint - 2, linePoint);
                    }
                    if (eqi.minRange > 0) {
                        g2d.drawString(Integer.toString(eqi.minRange), minPoint, linePoint);
                    } else {
                        g2d.drawString("\u2014", minPoint, linePoint);
                    // g2d.drawLine(minPoint, (int) linePoint - 2, minPoint + 6, (int) linePoint - 2);
                    }
                    if (eqi.shtRange > 0) {
                        g2d.drawString(Integer.toString(eqi.shtRange), shtPoint, linePoint);
                    } else {
                        g2d.drawString("\u2014", shtPoint, linePoint);
                    // g2d.drawLine(shtPoint, (int) linePoint - 2, shtPoint + 6, (int) linePoint - 2);
                    }
                    if (eqi.medRange > 0) {
                        g2d.drawString(Integer.toString(eqi.medRange), medPoint, linePoint);
                    } else {
                        g2d.drawString("\u2014", medPoint, linePoint);
                    // g2d.drawLine(medPoint, (int) linePoint - 2, medPoint + 6, (int) linePoint - 2);
                    }
                    if (eqi.longRange > 0) {
                        g2d.drawString(Integer.toString(eqi.longRange), longPoint, (int) linePoint);
                    } else {
                        g2d.drawString("\u2014", longPoint, linePoint);
                    // g2d.drawLine(longPoint, (int) linePoint - 2, longPoint + 6, (int) linePoint - 2);
                    }
                }
            } else {
                ImageHelper.printCenterString(g2d, eqi.damage, font, damagePoint - 2, linePoint);
                g2d.drawString("\u2014", minPoint, linePoint);
                g2d.drawString("\u2014", shtPoint, linePoint);
                g2d.drawString("\u2014", medPoint, linePoint);
                // g2d.drawLine(medPoint, (int) linePoint - 2, medPoint + 6, (int) linePoint - 2);
                if (eqi.longRange > 0) {
                    g2d.drawString(Integer.toString(eqi.longRange), longPoint, (int) linePoint);
                } else {
                    g2d.drawString("\u2014", longPoint, linePoint);
                // g2d.drawLine(longPoint, (int) linePoint - 2, longPoint + 6, (int) linePoint - 2);
                }
            }
            if (eqi.hasArtemis) {
                g2d.drawString("w/Artemis IV FCS", typePoint, linePoint + lineFeed);
                newLineNeeded = true;
            } else if (eqi.hasArtemisV) {
                g2d.drawString("w/Artemis V FCS", typePoint, linePoint + lineFeed);
                newLineNeeded = true;
            } else if (eqi.hasApollo) {
                g2d.drawString("w/Apollo FCS", typePoint, linePoint + lineFeed);
                newLineNeeded = true;
            }
            linePoint += lineFeed;
            if (newLineNeeded) {
                linePoint += lineFeed;
            }
        }
    }
    double troopspace = tank.getTroopCarryingSpace();
    if (troopspace > 0) {
        linePoint += lineFeed;
        String troopString = "Infantry Compartment (";
        if ((troopspace - Math.floor(troopspace)) > 0) {
            troopString += String.valueOf(troopspace);
        } else {
            troopString += String.valueOf((int) troopspace);
        }
        if (troopspace == 1) {
            troopString += " ton)";
        } else {
            troopString += " tons)";
        }
        g2d.drawString(troopString, qtyPoint, linePoint);
    }
    for (Bay bay : tank.getTransportBays()) {
        linePoint += lineFeed;
        g2d.drawString(ImageHelperVehicle.getBayString(bay), qtyPoint, linePoint);
    }
    if (tank.hasWorkingMisc(MiscType.F_CHASSIS_MODIFICATION)) {
        linePoint += lineFeed;
        String chassisMods = "Chassis Modifications: ";
        for (Mounted misc : tank.getMisc()) {
            if (misc.getType().hasFlag(MiscType.F_CHASSIS_MODIFICATION)) {
                chassisMods += misc.getName() + ", ";
            }
        }
        chassisMods = chassisMods.substring(0, chassisMods.length() - 2);
        g2d.setFont(UnitUtil.getNewFont(g2d, chassisMods, false, 205, 7.0f));
        g2d.drawString(chassisMods, qtyPoint, linePoint);
        g2d.setFont(font);
    }
    ImageHelper.printVehicleAmmo(tank, g2d, (int) yoffset == 0 ? 0 : (int) yoffset - 8, xoffset);
}
Also used : Hashtable(java.util.Hashtable) ArrayList(java.util.ArrayList) Font(java.awt.Font) AmmoType(megamek.common.AmmoType) Mounted(megamek.common.Mounted) Bay(megamek.common.Bay)

Example 4 with Bay

use of megamek.common.Bay in project megameklab by MegaMek.

the class ImageHelperVehicle method printVTOLWeaponsNEquipment.

public static void printVTOLWeaponsNEquipment(Tank tank, Graphics2D g2d, float offsetY, float offsetX) {
    float qtyPoint = 26 + offsetX;
    float typePoint = 38 + offsetX;
    float locPoint = 127 + offsetX;
    float damagePoint = 150 + offsetX;
    float minPoint = 166 + offsetX;
    float shtPoint = 177 + offsetX;
    float medPoint = 195 + offsetX;
    float longPoint = 211 + offsetX;
    float maxHeight = 130.3f;
    float linePoint = 202f + offsetY;
    float lineFeed = 6.7f;
    boolean newLineNeeded = false;
    ArrayList<Hashtable<String, EquipmentInfo>> equipmentLocations = new ArrayList<Hashtable<String, EquipmentInfo>>(tank.getLocTurret() + 1);
    for (int pos = 0; pos <= tank.locations(); pos++) {
        equipmentLocations.add(pos, new Hashtable<String, EquipmentInfo>());
    }
    for (Mounted eq : tank.getEquipment()) {
        if ((eq.getType() instanceof AmmoType) || (eq.getLocation() == Entity.LOC_NONE) || !UnitUtil.isPrintableEquipment(eq.getType(), false)) {
            continue;
        }
        Hashtable<String, EquipmentInfo> eqHash = equipmentLocations.get(eq.getLocation());
        String equipmentName = eq.getName();
        if (eq.isRearMounted()) {
            equipmentName += "(R)";
        }
        if (eqHash.containsKey(equipmentName)) {
            EquipmentInfo eqi = eqHash.get(equipmentName);
            if (eq.getType().getTechLevel(tank.getTechLevelYear()) != eqi.techLevel) {
                eqi = new EquipmentInfo(tank, eq);
            } else {
                eqi.count++;
            }
            eqHash.put(equipmentName, eqi);
        } else {
            EquipmentInfo eqi = new EquipmentInfo(tank, eq);
            eqHash.put(equipmentName, eqi);
        }
    }
    if (tank.getTroopCarryingSpace() > 0) {
        maxHeight -= lineFeed;
    }
    if (tank.hasWorkingMisc(MiscType.F_CHASSIS_MODIFICATION)) {
        maxHeight -= lineFeed;
    }
    for (@SuppressWarnings("unused") Bay bay : tank.getTransportBays()) {
        maxHeight -= lineFeed;
    }
    g2d.setFont(UnitUtil.deriveFont(false, 7.0f));
    Font font = ImageHelperVehicle.getVehicleWeaponsNEquipmentFont(g2d, false, maxHeight, equipmentLocations, 7.0f);
    g2d.setFont(font);
    float stringHeight = ImageHelper.getStringHeight(g2d, "H", font);
    lineFeed = stringHeight;
    for (int pos = Tank.LOC_BODY; pos <= tank.locations(); pos++) {
        Hashtable<String, EquipmentInfo> eqHash = equipmentLocations.get(pos);
        if (eqHash.size() < 1) {
            continue;
        }
        ArrayList<EquipmentInfo> equipmentList = new ArrayList<EquipmentInfo>();
        EquipmentInfo artemisEQ = null;
        if (eqHash.containsKey("Artemis IV FCS")) {
            artemisEQ = eqHash.get("Artemis IV FCS");
            artemisEQ.count = 1;
            eqHash.remove("Artemis IV FCS");
        }
        for (EquipmentInfo eqi : eqHash.values()) {
            equipmentList.add(eqi);
        }
        Collections.sort(equipmentList, StringUtils.equipmentInfoComparator());
        for (int eqPos = 0; eqPos < equipmentList.size(); eqPos++) {
            EquipmentInfo eqi = equipmentList.get(eqPos);
            if ((eqi.isMML || (eqi.name.indexOf("LRM") > -1) || (eqi.name.indexOf("SRM") > -1)) && (artemisEQ != null)) {
                equipmentList.add(++eqPos, artemisEQ);
            }
        }
        for (EquipmentInfo eqi : equipmentList) {
            newLineNeeded = false;
            g2d.drawString(Integer.toString(eqi.count), qtyPoint, linePoint);
            String name = eqi.name.trim();
            g2d.setFont(UnitUtil.getNewFont(g2d, name, false, 65, font.getSize2D()));
            if (eqi.c3Level == EquipmentInfo.C3I) {
                ImageHelper.printC3iName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3EM) {
                ImageHelper.printC3EmName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3S) {
                ImageHelper.printC3sName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3M) {
                ImageHelper.printC3mName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3SB) {
                ImageHelper.printC3sbName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3MB) {
                ImageHelper.printC3mbName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.c3Level == EquipmentInfo.C3REMOTESENSOR) {
                ImageHelper.printC3RemoteSensorName(g2d, typePoint, linePoint, font, false, tank.isMixedTech() && TechConstants.isClan(tank.getTechLevel()));
            } else if (eqi.isMashCore) {
                ImageHelper.printMashCore(g2d, typePoint, linePoint, font, false, tank);
            } else if (eqi.isDroneControl) {
                ImageHelper.printDroneControl(g2d, typePoint, linePoint, font, false, tank);
            } else {
                g2d.drawString(name, typePoint, linePoint);
            }
            g2d.setFont(font);
            String location = tank.getLocationAbbr(pos);
            g2d.drawString(location, locPoint, linePoint);
            if (eqi.isWeapon) {
                if (eqi.isMML) {
                    ImageHelper.printCenterString(g2d, "[M,S,C]", font, damagePoint, linePoint);
                    linePoint += lineFeed - 1.0f;
                    g2d.drawString("LRM", typePoint, linePoint);
                    ImageHelper.printCenterString(g2d, "1/Msl", font, damagePoint, linePoint);
                    g2d.drawString("6", minPoint, linePoint);
                    g2d.drawString("7", shtPoint, linePoint);
                    g2d.drawString("14", medPoint, linePoint);
                    g2d.drawString("21", longPoint, linePoint);
                    linePoint += lineFeed - 1.0f;
                    g2d.drawString("SRM", typePoint, linePoint);
                    ImageHelper.printCenterString(g2d, "2/Msl", font, damagePoint, linePoint);
                    g2d.drawString("\u2014", minPoint, linePoint);
                    // g2d.drawLine(minPoint, (int) linePoint - 2, minPoint + 6, (int) linePoint - 2);
                    g2d.drawString("3", shtPoint, linePoint);
                    g2d.drawString("6", medPoint, linePoint);
                    g2d.drawString("9", longPoint, linePoint);
                } else if (eqi.isATM) {
                    ImageHelper.printCenterString(g2d, "[M,S,C]", font, damagePoint, linePoint);
                    linePoint += lineFeed - 1.0f;
                    g2d.drawString("Standard", typePoint, linePoint);
                    ImageHelper.printCenterString(g2d, "2/Msl", font, damagePoint, linePoint);
                    g2d.drawString("4", minPoint, linePoint);
                    g2d.drawString("5", shtPoint, linePoint);
                    g2d.drawString("10", medPoint, linePoint);
                    g2d.drawString("15", longPoint, linePoint);
                    linePoint += lineFeed - 1.0f;
                    g2d.drawString("Extended-Range", typePoint, linePoint);
                    ImageHelper.printCenterString(g2d, "1/Msl", font, damagePoint, linePoint);
                    g2d.drawString("4", minPoint, linePoint);
                    g2d.drawString("9", shtPoint, linePoint);
                    g2d.drawString("18", medPoint, linePoint);
                    g2d.drawString("27", longPoint, linePoint);
                    linePoint += lineFeed - 1.0f;
                    g2d.drawString("High-Explosive", typePoint, linePoint);
                    ImageHelper.printCenterString(g2d, "3/Msl", font, damagePoint, linePoint);
                    g2d.drawString("\u2014", minPoint, linePoint);
                    // g2d.drawLine(minPoint, (int) linePoint - 2, minPoint + 6, (int) linePoint - 2);
                    g2d.drawString("3", shtPoint, linePoint);
                    g2d.drawString("6", medPoint, linePoint);
                    g2d.drawString("9", longPoint, linePoint);
                } else {
                    if (ImageHelper.getStringWidth(g2d, eqi.damage.trim(), font) > 22) {
                        ImageHelper.printCenterString(g2d, eqi.damage.substring(0, eqi.damage.indexOf('[')), font, damagePoint, linePoint);
                        Font smallFont = UnitUtil.deriveFont(font.getSize2D() - 1.0f);
                        g2d.setFont(smallFont);
                        ImageHelper.printCenterString(g2d, eqi.damage.substring(eqi.damage.indexOf('[')), smallFont, damagePoint, (linePoint + lineFeed) - 1.0f);
                        newLineNeeded = true;
                        g2d.setFont(font);
                    } else {
                        ImageHelper.printCenterString(g2d, eqi.damage, font, damagePoint, linePoint);
                    }
                    if (eqi.minRange > 0) {
                        g2d.drawString(Integer.toString(eqi.minRange), minPoint, linePoint);
                    } else {
                        g2d.drawString("\u2014", minPoint, linePoint);
                    // g2d.drawLine(minPoint, (int) linePoint - 2, minPoint + 6, (int) linePoint - 2);
                    }
                    g2d.drawString(Integer.toString(eqi.shtRange), shtPoint, linePoint);
                    g2d.drawString(Integer.toString(eqi.medRange), medPoint, linePoint);
                    if (eqi.longRange > 0) {
                        g2d.drawString(Integer.toString(eqi.longRange), longPoint, (int) linePoint);
                    } else {
                        g2d.drawString("\u2014", longPoint, linePoint);
                    // g2d.drawLine(longPoint, (int) linePoint - 2, longPoint + 6, (int) linePoint - 2);
                    }
                }
            } else {
                ImageHelper.printCenterString(g2d, eqi.damage, font, damagePoint - 2, linePoint);
                g2d.drawString("\u2014", minPoint, linePoint);
                g2d.drawString("\u2014", shtPoint, linePoint);
                g2d.drawString("\u2014", medPoint, linePoint);
                // g2d.drawLine(medPoint, (int) linePoint - 2, medPoint + 6, (int) linePoint - 2);
                if (eqi.longRange > 0) {
                    g2d.drawString(Integer.toString(eqi.longRange), longPoint, (int) linePoint);
                } else {
                    g2d.drawString("\u2014", longPoint, linePoint);
                // g2d.drawLine(longPoint, (int) linePoint - 2, longPoint + 6, (int) linePoint - 2);
                }
            }
            linePoint += lineFeed;
            if (newLineNeeded) {
                linePoint += lineFeed;
            }
        }
    }
    double troopspace = tank.getTroopCarryingSpace();
    if (troopspace > 0) {
        linePoint += lineFeed;
        String troopString = "Infantry Compartment(";
        if ((troopspace - Math.floor(troopspace)) > 0) {
            troopString += String.valueOf(troopspace);
        } else {
            troopString += String.valueOf((int) troopspace);
        }
        if (troopspace == 1) {
            troopString += " ton)";
        } else {
            troopString += " tons)";
        }
        g2d.drawString(troopString, qtyPoint, linePoint);
    }
    for (Bay bay : tank.getTransportBays()) {
        linePoint += lineFeed;
        g2d.drawString(ImageHelperVehicle.getBayString(bay), qtyPoint, linePoint);
    }
    if (tank.hasWorkingMisc(MiscType.F_CHASSIS_MODIFICATION)) {
        linePoint += lineFeed;
        String chassisMods = "Chassis Modifications: ";
        for (Mounted misc : tank.getMisc()) {
            if (misc.getType().hasFlag(MiscType.F_CHASSIS_MODIFICATION)) {
                chassisMods += misc.getName() + ", ";
            }
        }
        chassisMods = chassisMods.substring(0, chassisMods.length() - 2);
        g2d.drawString(chassisMods, qtyPoint, linePoint);
    }
    ImageHelper.printVehicleAmmo(tank, g2d, (int) offsetY, (int) offsetX);
}
Also used : Hashtable(java.util.Hashtable) ArrayList(java.util.ArrayList) Font(java.awt.Font) AmmoType(megamek.common.AmmoType) Mounted(megamek.common.Mounted) Bay(megamek.common.Bay)

Example 5 with Bay

use of megamek.common.Bay in project megameklab by MegaMek.

the class UnitUtil method removeMounted.

public static void removeMounted(Entity unit, Mounted mount) {
    UnitUtil.removeCriticals(unit, mount);
    // Some special checks for BA
    if (unit instanceof BattleArmor) {
        // to detach the weapon
        if (mount.getType().hasFlag(MiscType.F_DETACHABLE_WEAPON_PACK) && (mount.getLinked() != null)) {
            Mounted link = mount.getLinked();
            link.setDWPMounted(false);
            link.setLinked(null);
            link.setLinkedBy(null);
        }
        // to clear the mounted status of the DWP
        if ((mount.getLinkedBy() != null) && mount.getLinkedBy().getType().hasFlag(MiscType.F_DETACHABLE_WEAPON_PACK)) {
            Mounted dwp = mount.getLinkedBy();
            dwp.setLinked(null);
            dwp.setLinkedBy(null);
        }
        // to detach the weapon
        if (mount.getType().hasFlag(MiscType.F_AP_MOUNT) && (mount.getLinked() != null)) {
            Mounted link = mount.getLinked();
            link.setAPMMounted(false);
            link.setLinked(null);
            link.setLinkedBy(null);
        }
        // to clear the mounted status of the AP Mount
        if ((mount.getLinkedBy() != null) && mount.getLinkedBy().getType().hasFlag(MiscType.F_AP_MOUNT)) {
            Mounted apm = mount.getLinkedBy();
            apm.setLinked(null);
            apm.setLinkedBy(null);
        }
    }
    // Some special checks for Aeros
    if (unit instanceof Aero) {
        if (mount.getType() instanceof WeaponType) {
            // Aeros have additional weapon lists that need to be cleared
            ((Aero) unit).getTotalWeaponList().remove(mount);
            ((Aero) unit).getWeaponBayList().remove(mount);
            ((Aero) unit).getWeaponGroupList().remove(mount);
        }
    }
    // We will need to reset the equipment numbers of the bay ammo and weapons
    Map<Mounted, List<Mounted>> bayWeapons = new HashMap<>();
    Map<Mounted, List<Mounted>> bayAmmo = new HashMap<>();
    for (Mounted bay : unit.getWeaponBayList()) {
        List<Mounted> list = bay.getBayWeapons().stream().map(n -> unit.getEquipment(n)).collect(Collectors.toList());
        bayWeapons.put(bay, list);
        list = bay.getBayAmmo().stream().map(n -> unit.getEquipment(n)).collect(Collectors.toList());
        bayAmmo.put(bay, list);
    }
    unit.getEquipment().remove(mount);
    if (mount.getType() instanceof MiscType) {
        unit.getMisc().remove(mount);
    } else if (mount.getType() instanceof AmmoType) {
        unit.getAmmo().remove(mount);
    } else {
        unit.getWeaponList().remove(mount);
        unit.getTotalWeaponList().remove(mount);
    }
    for (Mounted bay : bayWeapons.keySet()) {
        bay.getBayWeapons().clear();
        for (Mounted w : bayWeapons.get(bay)) {
            if (mount != w) {
                bay.getBayWeapons().add(unit.getEquipmentNum(w));
            }
        }
    }
    for (Mounted bay : bayAmmo.keySet()) {
        bay.getBayAmmo().clear();
        for (Mounted a : bayAmmo.get(bay)) {
            if (mount != a) {
                bay.getBayAmmo().add(unit.getEquipmentNum(a));
            }
        }
    }
    // An example of this would be removing a linked Artemis IV FCS
    for (Mounted m : unit.getEquipment()) {
        if (mount.equals(m.getLinkedBy())) {
            m.setLinkedBy(null);
        }
    }
}
Also used : CapitalMissileWeapon(megamek.common.weapons.capitalweapons.CapitalMissileWeapon) Arrays(java.util.Arrays) Dropship(megamek.common.Dropship) RLWeapon(megamek.common.weapons.missiles.RLWeapon) CriticalSlot(megamek.common.CriticalSlot) TestTank(megamek.common.verifier.TestTank) StopSwarmAttack(megamek.common.weapons.StopSwarmAttack) Vector(java.util.Vector) BattleArmor(megamek.common.BattleArmor) HVACWeapon(megamek.common.weapons.autocannons.HVACWeapon) Map(java.util.Map) SRTWeapon(megamek.common.weapons.srms.SRTWeapon) BigInteger(java.math.BigInteger) SmallCraft(megamek.common.SmallCraft) AmmoWeapon(megamek.common.weapons.AmmoWeapon) JFrame(javax.swing.JFrame) Infantry(megamek.common.Infantry) LegAttack(megamek.common.weapons.LegAttack) StreakLRMWeapon(megamek.common.weapons.lrms.StreakLRMWeapon) EnergyWeapon(megamek.common.weapons.lasers.EnergyWeapon) Mech(megamek.common.Mech) GaussWeapon(megamek.common.weapons.gaussrifles.GaussWeapon) VTOL(megamek.common.VTOL) ISAPDS(megamek.common.weapons.other.ISAPDS) Protomech(megamek.common.Protomech) WeaponType(megamek.common.WeaponType) MPodWeapon(megamek.common.weapons.defensivepods.MPodWeapon) Tank(megamek.common.Tank) Entity(megamek.common.Entity) ISC3M(megamek.common.weapons.other.ISC3M) HAGWeapon(megamek.common.weapons.gaussrifles.HAGWeapon) LogLevel(megamek.common.logging.LogLevel) ThunderBoltWeapon(megamek.common.weapons.missiles.ThunderBoltWeapon) VehicleFlamerWeapon(megamek.common.weapons.flamers.VehicleFlamerWeapon) ArrayList(java.util.ArrayList) HTMLEditorKit(javax.swing.text.html.HTMLEditorKit) EquipmentType(megamek.common.EquipmentType) MegaMekLab(megameklab.com.MegaMekLab) JEditorPane(javax.swing.JEditorPane) JTextPane(javax.swing.JTextPane) ITechManager(megamek.common.ITechManager) TechConstants(megamek.common.TechConstants) TestMech(megamek.common.verifier.TestMech) Nullable(megamek.common.annotations.Nullable) ISC3MBS(megamek.common.weapons.other.ISC3MBS) SwarmAttack(megamek.common.weapons.SwarmAttack) File(java.io.File) JScrollPane(javax.swing.JScrollPane) PPCWeapon(megamek.common.weapons.ppc.PPCWeapon) EntityVerifier(megamek.common.verifier.EntityVerifier) JDialog(javax.swing.JDialog) DecimalFormatSymbols(java.text.DecimalFormatSymbols) Aero(megamek.common.Aero) ISAMS(megamek.common.weapons.other.ISAMS) EntityWeightClass(megamek.common.EntityWeightClass) ISTAG(megamek.common.weapons.tag.ISTAG) ISLaserAMS(megamek.common.weapons.other.ISLaserAMS) ISBALightTAG(megamek.common.weapons.battlearmor.ISBALightTAG) CLLightTAG(megamek.common.weapons.tag.CLLightTAG) TestEntity(megamek.common.verifier.TestEntity) StreakSRMWeapon(megamek.common.weapons.srms.StreakSRMWeapon) Bay(megamek.common.Bay) TestAero(megamek.common.verifier.TestAero) TestBattleArmor(megamek.common.verifier.TestBattleArmor) SwarmWeaponAttack(megamek.common.weapons.SwarmWeaponAttack) CLBALightTAG(megamek.common.weapons.battlearmor.CLBALightTAG) ScrollPaneConstants(javax.swing.ScrollPaneConstants) LocationFullException(megamek.common.LocationFullException) Font(java.awt.Font) MRMWeapon(megamek.common.weapons.missiles.MRMWeapon) TestInfantry(megamek.common.verifier.TestInfantry) BPodWeapon(megamek.common.weapons.defensivepods.BPodWeapon) TestSmallCraft(megamek.common.verifier.TestSmallCraft) Collectors(java.util.stream.Collectors) LBXACWeapon(megamek.common.weapons.autocannons.LBXACWeapon) Dimension(java.awt.Dimension) List(java.util.List) MiscType(megamek.common.MiscType) TripodMech(megamek.common.TripodMech) Optional(java.util.Optional) UACWeapon(megamek.common.weapons.autocannons.UACWeapon) SRMWeapon(megamek.common.weapons.srms.SRMWeapon) CLBALBX(megamek.common.weapons.battlearmor.CLBALBX) ConcurrentLinkedQueue(java.util.concurrent.ConcurrentLinkedQueue) CLChemicalLaserWeapon(megamek.common.weapons.lasers.CLChemicalLaserWeapon) CLTAG(megamek.common.weapons.tag.CLTAG) ISPlasmaRifle(megamek.common.weapons.ppc.ISPlasmaRifle) TestSupportVehicle(megamek.common.verifier.TestSupportVehicle) InfantryRifleAutoRifleWeapon(megamek.common.weapons.infantry.InfantryRifleAutoRifleWeapon) MGWeapon(megamek.common.weapons.mgs.MGWeapon) HashMap(java.util.HashMap) CLAMS(megamek.common.weapons.other.CLAMS) CLLaserAMS(megamek.common.weapons.other.CLLaserAMS) Graphics2D(java.awt.Graphics2D) BipedMech(megamek.common.BipedMech) Mounted(megamek.common.Mounted) MechView(megamek.common.MechView) AmmoType(megamek.common.AmmoType) ITechnology(megamek.common.ITechnology) CLPlasmaCannon(megamek.common.weapons.ppc.CLPlasmaCannon) LRTWeapon(megamek.common.weapons.lrms.LRTWeapon) DecimalFormat(java.text.DecimalFormat) LRMWeapon(megamek.common.weapons.lrms.LRMWeapon) FileInputStream(java.io.FileInputStream) LandAirMech(megamek.common.LandAirMech) JOptionPane(javax.swing.JOptionPane) InfantryWeapon(megamek.common.weapons.infantry.InfantryWeapon) ACWeapon(megamek.common.weapons.autocannons.ACWeapon) MMLogger(megamek.common.logging.MMLogger) DefaultCaret(javax.swing.text.DefaultCaret) QuadMech(megamek.common.QuadMech) InputStream(java.io.InputStream) AmmoType(megamek.common.AmmoType) HashMap(java.util.HashMap) Mounted(megamek.common.Mounted) WeaponType(megamek.common.WeaponType) MiscType(megamek.common.MiscType) ArrayList(java.util.ArrayList) List(java.util.List) Aero(megamek.common.Aero) TestAero(megamek.common.verifier.TestAero) BattleArmor(megamek.common.BattleArmor) TestBattleArmor(megamek.common.verifier.TestBattleArmor)

Aggregations

Bay (megamek.common.Bay)15 Font (java.awt.Font)8 ArrayList (java.util.ArrayList)8 AmmoType (megamek.common.AmmoType)5 Mounted (megamek.common.Mounted)5 HashMap (java.util.HashMap)4 Hashtable (java.util.Hashtable)4 BayData (megamek.common.verifier.BayData)4 Map (java.util.Map)3 TestAero (megamek.common.verifier.TestAero)3 EnumMap (java.util.EnumMap)2 List (java.util.List)2 JSpinner (javax.swing.JSpinner)2 Dimension (java.awt.Dimension)1 Graphics2D (java.awt.Graphics2D)1 File (java.io.File)1 FileInputStream (java.io.FileInputStream)1 InputStream (java.io.InputStream)1 BigInteger (java.math.BigInteger)1 DecimalFormat (java.text.DecimalFormat)1