Search in sources :

Example 6 with Bay

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

the class ImageHelperAero method printCargo.

public static void printCargo(Aero aero, Graphics2D g2d, int pointY) {
    if ((aero.getTransportBays().size() < 1) && (aero.getTroopCarryingSpace() == 0)) {
        return;
    }
    int pointX = 30;
    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);
    font = UnitUtil.deriveFont(g2d.getFont().getSize2D());
    g2d.setFont(font);
    double troopspace = aero.getTroopCarryingSpace();
    if (troopspace > 0) {
        pointY += 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, pointX, pointY);
    }
    pointY += lineFeed;
    for (Bay bay : aero.getTransportBays()) {
        g2d.drawString(ImageHelperDropShip.getBayString(bay), pointX, pointY);
        pointY += lineFeed;
    }
}
Also used : Bay(megamek.common.Bay) Font(java.awt.Font)

Example 7 with Bay

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

the class DropshipStructureTab method setQuarters.

private void setQuarters(TestAero.Quarters quarters, int size) {
    List<Bay> toRemove = new ArrayList<>();
    for (Bay bay : getSmallCraft().getTransportBays()) {
        if (TestAero.Quarters.getQuartersForBay(bay) == quarters) {
            toRemove.add(bay);
        }
    }
    for (Bay bay : toRemove) {
        getSmallCraft().removeTransporter(bay);
    }
    getSmallCraft().addTransporter(quarters.newQuarters(size));
}
Also used : ArrayList(java.util.ArrayList) Bay(megamek.common.Bay)

Example 8 with Bay

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

the class DropshipStructureTab method quartersChanged.

@Override
public void quartersChanged(int officer, int standard, int secondclass, int steerage) {
    EnumMap<TestAero.Quarters, Integer> sizes = new EnumMap<>(TestAero.Quarters.class);
    for (Bay bay : getSmallCraft().getTransportBays()) {
        Quarters q = TestAero.Quarters.getQuartersForBay(bay);
        if (null != q) {
            sizes.merge(q, (int) bay.getCapacity(), Integer::sum);
        }
    }
    if (sizes.getOrDefault(TestAero.Quarters.FIRST_CLASS, 0) != officer) {
        setQuarters(TestAero.Quarters.FIRST_CLASS, officer);
    }
    if (sizes.getOrDefault(TestAero.Quarters.STANDARD, 0) != standard) {
        setQuarters(TestAero.Quarters.STANDARD, standard);
    }
    if (sizes.getOrDefault(TestAero.Quarters.SECOND_CLASS, 0) != secondclass) {
        setQuarters(TestAero.Quarters.SECOND_CLASS, secondclass);
    }
    if (sizes.getOrDefault(TestAero.Quarters.STEERAGE, 0) != steerage) {
        setQuarters(TestAero.Quarters.STEERAGE, steerage);
    }
    panCrew.setFromEntity(getSmallCraft());
    refreshSummary();
    refresh.refreshStatus();
    refresh.refreshPreview();
}
Also used : TestAero(megamek.common.verifier.TestAero) Bay(megamek.common.Bay) Quarters(megamek.common.verifier.TestAero.Quarters) EnumMap(java.util.EnumMap)

Example 9 with Bay

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

the class TransportTab method actionPerformed.

public void actionPerformed(ActionEvent ev) {
    if (ev.getSource() == btnAddBay) {
        int selected = tblAvailable.getSelectedRow();
        if (selected >= 0) {
            BayData bayType = modelAvailable.getBayType(tblAvailable.convertRowIndexToModel(selected));
            int num = 1;
            while (getAero().getBayById(num) != null) {
                num++;
            }
            Bay newBay = bayType.newBay(1.0, num);
            if (doorsAvailable() > 0) {
                newBay.setDoors(1);
            }
            addBay(newBay);
            modelInstalled.refreshBays();
            rebuildBays();
            refresh();
        }
    } else if (ev.getSource() == btnRemoveBay) {
        int selected = tblInstalled.getSelectedRow();
        if (selected >= 0) {
            Bay bay = modelInstalled.getBay(tblInstalled.convertRowIndexToModel(selected));
            removeBay(bay);
            modelInstalled.refreshBays();
            rebuildBays();
            refresh();
        }
    } else if (ev.getSource() == btnAddToCargo) {
        double size = getAero().getWeight() - UnitUtil.getEntityVerifier(getAero()).calculateWeight();
        if (size > 0) {
            int selected = tblInstalled.getSelectedRow();
            Bay bay = null;
            int bayNum = 1;
            if ((selected >= 0) && (modelInstalled.getBayType(tblInstalled.convertRowIndexToModel(selected)) == BayData.CARGO)) {
                bay = modelInstalled.getBay(tblInstalled.convertRowIndexToModel(selected));
                size += bay.getCapacity();
                bayNum = bay.getBayNumber();
                removeBay(bay);
            } else {
                while (getAero().getBayById(bayNum) != null) {
                    bayNum++;
                }
            }
            bay = BayData.CARGO.newBay(size, bayNum);
            addBay(bay);
            refresh();
        }
    }
}
Also used : Bay(megamek.common.Bay) InfantryBay(megamek.common.InfantryBay) BayData(megamek.common.verifier.BayData)

Example 10 with Bay

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

the class ImageHelperVehicle method printLargeVehicleCargo.

public static void printLargeVehicleCargo(Tank tank, Graphics2D g2d, float pointY, float xoffset, float yoffset) {
    double troopspace = tank.getTroopCarryingSpace();
    if ((tank.getTransportBays().size() < 1) && (troopspace == 0)) {
        return;
    }
    int pointX = 22;
    double lineFeed = ImageHelper.getStringHeight(g2d, "H", g2d.getFont());
    Font font = UnitUtil.deriveFont(true, g2d.getFont().getSize2D());
    g2d.setFont(font);
    g2d.drawString("Cargo: ", pointX + xoffset, pointY + yoffset);
    pointY += lineFeed;
    font = UnitUtil.deriveFont(g2d.getFont().getSize2D());
    g2d.setFont(font);
    if (troopspace > 0) {
        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, pointX + xoffset, pointY + yoffset);
        pointY += lineFeed;
    }
    for (Bay bay : tank.getTransportBays()) {
        g2d.drawString(ImageHelperVehicle.getBayString(bay), pointX + xoffset, pointY + yoffset);
        pointY += lineFeed;
    }
}
Also used : Bay(megamek.common.Bay) Font(java.awt.Font)

Aggregations

Bay (megamek.common.Bay)14 Font (java.awt.Font)8 ArrayList (java.util.ArrayList)8 AmmoType (megamek.common.AmmoType)5 Mounted (megamek.common.Mounted)5 Hashtable (java.util.Hashtable)4 HashMap (java.util.HashMap)3 TestAero (megamek.common.verifier.TestAero)3 EnumMap (java.util.EnumMap)2 List (java.util.List)2 Map (java.util.Map)2 BayData (megamek.common.verifier.BayData)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 DecimalFormatSymbols (java.text.DecimalFormatSymbols)1