Skip to content

Commit

Permalink
Merge pull request #1368 from MegaMek/modular_ss
Browse files Browse the repository at this point in the history
Space station KF adapters
  • Loading branch information
SJuliez authored Jan 3, 2024
2 parents 79c8774 + 5b49ee2 commit 1db8910
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 5 deletions.
2 changes: 2 additions & 0 deletions megameklab/resources/megameklab/resources/Views.properties
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,8 @@ AdvAeroChassisView.chkSail.text=Sail
AdvAeroChassisView.chkSail.tooltip=Energy collection sail can charge a jump system or batteries.
AdvAeroChassisView.chkModular.text=Modular
AdvAeroChassisView.chkModular.tooltip=A modular space station is more expensive to produce but faster to build. This has no effect on play other than cost.
AdvAeroChassisView.chkKFAdapter.text=KF Adapter
AdvAeroChassisView.chkKFAdapter.tooltip=Adding a KF adapter makes it possible to move the station by JumpShip. This has no effect on play other than cost.
AdvAeroChassisView.chkMilitary.text=Military
AdvAeroChassisView.chkMilitary.tooltip=A military space station can make more frequent facing changes.
AdvAeroChassisView.cbBaseType.text=Vessel Type:
Expand Down
20 changes: 16 additions & 4 deletions megameklab/src/megameklab/ui/largeAero/WSChassisView.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,9 @@ public void removeListener(AdvancedAeroBuildListener l) {
final private JCheckBox chkSail = new JCheckBox();
final private JCheckBox chkMilitary = new JCheckBox();
final private JSpinner spnSI = new JSpinner(spnSIModel);
final private ResourceBundle resourceMap = ResourceBundle.getBundle("megameklab.resources.Views");

private ITechManager techManager;
private final ITechManager techManager;
private int baseType;
private int maxTonnage;
private int minTonnage;
Expand All @@ -80,7 +81,6 @@ public WSChassisView(ITechManager techManager) {
}

public void initUI() {
ResourceBundle resourceMap = ResourceBundle.getBundle("megameklab.resources.Views");
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
cbBaseType.setModel(new DefaultComboBoxModel<>(resourceMap.getString("AdvAeroChassisView.cbBaseType.values").split(",")));
Expand Down Expand Up @@ -212,7 +212,7 @@ public void setFromEntity(Jumpship craft) {
chkMilitary.addActionListener(this);
chkModular.removeActionListener(this);
chkModular.setSelected(craft.hasETypeFlag(Entity.ETYPE_SPACE_STATION)
&& ((SpaceStation) craft).isModular());
&& ((SpaceStation) craft).isModularOrKFAdapter());
chkModular.addActionListener(this);


Expand Down Expand Up @@ -252,8 +252,20 @@ public void refresh() {
chkLFBattery.setVisible((baseType != TYPE_STATION)
&& techManager.isLegal(Jumpship.getLFBatteryTA()));
chkMilitary.setVisible((baseType == TYPE_STATION));
if (baseType == TYPE_STATION) {
if ((getTonnage() <= SpaceStation.MODULAR_MININUM_WEIGHT)
&& techManager.isLegal(SpaceStation.getKFAdapterTA())) {
chkModular.setText(resourceMap.getString("AdvAeroChassisView.chkKFAdapter.text"));
chkModular.setToolTipText(resourceMap.getString("AdvAeroChassisView.chkKFAdapter.tooltip"));
} else if ((getTonnage() > SpaceStation.MODULAR_MININUM_WEIGHT)
&& techManager.isLegal(SpaceStation.getModularTA())) {
chkModular.setText(resourceMap.getString("AdvAeroChassisView.chkModular.text"));
chkModular.setToolTipText(resourceMap.getString("AdvAeroChassisView.chkModular.tooltip"));
}
}
chkModular.setVisible((baseType == TYPE_STATION)
&& techManager.isLegal(SpaceStation.getModularTA()));
&& techManager.isLegal(getTonnage() <= 100000.0 ?
SpaceStation.getKFAdapterTA() : SpaceStation.getModularTA()));
}

private void refreshTonnage() {
Expand Down
2 changes: 1 addition & 1 deletion megameklab/src/megameklab/ui/largeAero/WSStructureTab.java
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ public void militaryChanged(boolean military) {
@Override
public void modularChanged(boolean modular) {
if (getJumpship() instanceof SpaceStation) {
((SpaceStation) getJumpship()).setModular(modular);
((SpaceStation) getJumpship()).setModularOrKFAdapter(modular);
}
refresh.refreshPreview();
refresh.refreshStatus();
Expand Down

0 comments on commit 1db8910

Please sign in to comment.