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;
}
}
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));
}
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();
}
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();
}
}
}
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;
}
}
Aggregations