Skip to content

Commit ef82578

Browse files
authored
[0.7.1]: Merging current changes onto a new release (#29)
* [MP-2]: Created button for Create Maneuvers Panel (#16) * [MP-2]: Added button for Create Maneuvers, fixed some UI * [MP-2]: Created button for Create Maneuvers Panel Included a fix for not finishing the maneuver burn. Changed the 'Change Vessel' area to 10km for 'nearest'. * [MP-2]: Making liftoff button get back to telemetry jpanel (#17) * [MP-2]: Added button for Create Maneuvers, fixed some UI * [MP-2]: Created button for Create Maneuvers Panel Included a fix for not finishing the maneuver burn. Changed the 'Change Vessel' area to 10km for 'nearest'. * [MP-2]: Making liftoff button get back to telemetry jpanel * [MP-2]: Incremented patch version for bugfix (#18) * [MP-2]: Added button for Create Maneuvers, fixed some UI * [MP-2]: Created button for Create Maneuvers Panel Included a fix for not finishing the maneuver burn. Changed the 'Change Vessel' area to 10km for 'nearest'. * [MP-2]: Making liftoff button get back to telemetry jpanel * [MP-2]: Incremented patch version for bugfix * [DEV]: Updated KRPC, Protobuf and README Updated KRPC to version 0.5.1 and protobuf-java to 3.22.1 README link for KRPC was updated to 0.5.1 Changed MechPeste version to 0.6.2 MechPeste now installs krpc version 0.5.1 from the menu * [DEV]: Adding new version of KRPC, safer de-orbiting * [MP-2]: Create the UI for maneuver creation helper (#20) * [MP-2]: Added button for Create Maneuvers, fixed some UI * [MP-2]: Created button for Create Maneuvers Panel Included a fix for not finishing the maneuver burn. Changed the 'Change Vessel' area to 10km for 'nearest'. * [MP-2]: Making liftoff button get back to telemetry jpanel * [MP-2]: Incremented patch version for bugfix * [MP-2]: Created Panel and Functionality * [MP-2]: Added event listeners for maneuver buttons * [MP-2]: Began implementing Rendezvous code * [MP-2]: Unified Create and Run Maneuver JPanels * [MP-2]: Saving current changes to MechPeste * Docking test (#21) * [MP-2]: Added button for Create Maneuvers, fixed some UI * [MP-2]: Created button for Create Maneuvers Panel Included a fix for not finishing the maneuver burn. Changed the 'Change Vessel' area to 10km for 'nearest'. * [MP-2]: Making liftoff button get back to telemetry jpanel * [MP-2]: Incremented patch version for bugfix * [MP-2]: Created Panel and Functionality * [MP-2]: Added event listeners for maneuver buttons * [MP-2]: Began implementing Rendezvous code * [MP-2]: Unified Create and Run Maneuver JPanels * [MP-2]: Saving current changes to MechPeste * -- First implementation of auto-docking * -- Managed to debug on Neovim * -- Changed how ControlePID works * [Docking]: Finally have a working docking script? * [Docking]: Working 1st and 2nd docking stage * [Docking]: We have a docking script! * [Docking]: Implement docking into MechPeste * [Docking]: Organize docking code * [Docking]: Implement maneuvering around target * [Landing]: Fix landing speed calculation * [Maven]: Implement Maven project manager (#22) * [MP-2]: Added button for Create Maneuvers, fixed some UI * [MP-2]: Created button for Create Maneuvers Panel Included a fix for not finishing the maneuver burn. Changed the 'Change Vessel' area to 10km for 'nearest'. * [MP-2]: Making liftoff button get back to telemetry jpanel * [MP-2]: Incremented patch version for bugfix * [MP-2]: Created Panel and Functionality * [MP-2]: Added event listeners for maneuver buttons * [MP-2]: Began implementing Rendezvous code * [MP-2]: Unified Create and Run Maneuver JPanels * [MP-2]: Saving current changes to MechPeste * -- First implementation of auto-docking * -- Managed to debug on Neovim * -- Changed how ControlePID works * [Docking]: Finally have a working docking script? * [Docking]: Working 1st and 2nd docking stage * [Docking]: We have a docking script! * [Docking]: Implement docking into MechPeste * [Docking]: Organize docking code * [Docking]: Implement maneuvering around target * [Landing]: Fix landing speed calculation * [Maven]: Implement Maven project manager * [Maven]: Configure project to use Maven to deploy new versions * [Maven]: Add version checker using Maven * [Maven]: Update version display code, README file * [CI]: Add CI workflow to project using Maven * [CI]: Add KRPC as a Local Library on GHA * [CI]: Add release script * [CI]: Update release script * [CI]: Install KRPC before build * [CI]: Release script test * [CI]: Create tags test * [CI]: Set version using ENV variables * [Release]: Creating tag before release * [CI]: Updated release scripts * [CI]: Separate env and tag steps * [Release]: Adjust tag name * [Release]: Release new version when pushing to master * [MP-3]: Add docking step texts, sort lines on Bundle files (#28)
1 parent 1b4d448 commit ef82578

6 files changed

Lines changed: 127 additions & 64 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>com.pesterenan</groupId>
77
<artifactId>MechPeste</artifactId>
8-
<version>0.7.0</version>
8+
<version>0.7.1</version>
99

1010
<build>
1111
<plugins>

src/main/java/com/pesterenan/controllers/DockingController.java

Lines changed: 44 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55

66
import java.util.Map;
77

8+
import com.pesterenan.resources.Bundle;
89
import com.pesterenan.utils.Modulos;
910
import com.pesterenan.utils.Utilities;
1011
import com.pesterenan.utils.Vector;
12+
import com.pesterenan.views.DockingJPanel;
1113
import com.pesterenan.views.StatusJPanel;
1214

1315
import krpc.client.RPCException;
@@ -27,7 +29,6 @@ public class DockingController extends Controller {
2729

2830
private ReferenceFrame orbitalRefVessel;
2931
private ReferenceFrame vesselRefFrame;
30-
private ReferenceFrame orbitalRefBody;
3132
private Line distanceLine;
3233
private Line distLineXAxis;
3334
private Line distLineYAxis;
@@ -37,8 +38,8 @@ public class DockingController extends Controller {
3738
private Vector positionMyDockingPort;
3839
private Vector positionTargetDockingPort;
3940

40-
private final double DISTANCE_LIMIT = 25.0;
41-
private double SPEED_LIMIT = 3.0;
41+
private double DOCKING_MAX_SPEED = 3.0;
42+
private double SAFE_DISTANCE = 25.0;
4243
private double currentXAxisSpeed = 0.0;
4344
private double currentYAxisSpeed = 0.0;
4445
private double currentZAxisSpeed = 0.0;
@@ -56,16 +57,17 @@ public DockingController(Map<String, String> commands) {
5657

5758
private void initializeParameters() {
5859
try {
59-
SPEED_LIMIT = Double.parseDouble(commands.get(Modulos.VELOCIDADE_MAX.get()));
60+
DOCKING_MAX_SPEED = Double.parseDouble(commands.get(Modulos.VELOCIDADE_MAX.get()));
61+
SAFE_DISTANCE = Double.parseDouble(commands.get(Modulos.DISTANCIA_SEGURA.get()));
6062
drawing = Drawing.newInstance(getConnection());
6163
targetVessel = getSpaceCenter().getTargetVessel();
6264
control = getNaveAtual().getControl();
6365
vesselRefFrame = getNaveAtual().getReferenceFrame();
6466
orbitalRefVessel = getNaveAtual().getOrbitalReferenceFrame();
65-
orbitalRefBody = getNaveAtual().getOrbit().getBody().getReferenceFrame();
6667

6768
myDockingPort = getNaveAtual().getParts().getDockingPorts().get(0);
6869
targetDockingPort = targetVessel.getParts().getDockingPorts().get(0);
70+
dockingStep = DOCKING_STEPS.STOP_RELATIVE_SPEED;
6971

7072
positionMyDockingPort = new Vector(myDockingPort.position(orbitalRefVessel));
7173
positionTargetDockingPort = new Vector(targetDockingPort.position(orbitalRefVessel));
@@ -103,12 +105,12 @@ private void getCloserToTarget(Vector targetPosition) throws InterruptedExceptio
103105
lastYTargetPos = targetPosition.y;
104106
lastZTargetPos = targetPosition.z;
105107

106-
while (Math.abs(lastYTargetPos) >= DISTANCE_LIMIT) {
108+
while (Math.abs(lastYTargetPos) >= SAFE_DISTANCE) {
107109
if (Thread.interrupted()) {
108110
throw new InterruptedException();
109111
}
110112
targetPosition = new Vector(targetVessel.position(vesselRefFrame));
111-
controlShipRCS(targetPosition, DISTANCE_LIMIT);
113+
controlShipRCS(targetPosition, SAFE_DISTANCE);
112114
Thread.sleep(sleepTime);
113115
}
114116

@@ -124,7 +126,7 @@ public void startDocking() {
124126

125127
// PRIMEIRA PARTE DO DOCKING: APROXIMAÇÃO
126128
Vector targetPosition = new Vector(targetVessel.position(vesselRefFrame));
127-
if (targetPosition.magnitude() > DISTANCE_LIMIT) {
129+
if (targetPosition.magnitude() > SAFE_DISTANCE) {
128130
// Apontar para o alvo:
129131
Vector targetDirection = new Vector(getNaveAtual().position(orbitalRefVessel))
130132
.subtract(new Vector(targetVessel.position(orbitalRefVessel))).multiply(-1);
@@ -159,7 +161,7 @@ public void startDocking() {
159161
Thread.sleep(sleepTime);
160162
}
161163
} catch (RPCException | InterruptedException | IllegalArgumentException e) {
162-
StatusJPanel.setStatusMessage("Docking aborted.");
164+
StatusJPanel.setStatusMessage("Docking interrupted.");
163165
}
164166
}
165167

@@ -176,22 +178,7 @@ public void startDocking() {
176178
*/
177179

178180
private enum DOCKING_STEPS {
179-
APPROACH, LINE_UP_WITH_TARGET, GO_IN_FRONT_OF_TARGET
180-
}
181-
182-
private DOCKING_STEPS checkDockingStep(Vector targetPosition, double forwardsDistanceLimit) {
183-
double sidewaysDistance = Math.abs(targetPosition.x);
184-
double upwardsDistance = Math.abs(targetPosition.z);
185-
boolean isInFrontOfTarget = Math.signum(targetPosition.y) == 1;
186-
boolean isOnTheBackOfTarget = Math.signum(targetPosition.y) == -1 && targetPosition.y < forwardsDistanceLimit;
187-
188-
if (isOnTheBackOfTarget) {
189-
return DOCKING_STEPS.GO_IN_FRONT_OF_TARGET;
190-
}
191-
if (isInFrontOfTarget && (sidewaysDistance > 5 || upwardsDistance > 5)) {
192-
return DOCKING_STEPS.LINE_UP_WITH_TARGET;
193-
}
194-
return DOCKING_STEPS.APPROACH;
181+
APPROACH, STOP_RELATIVE_SPEED, LINE_UP_WITH_TARGET, GO_IN_FRONT_OF_TARGET
195182
}
196183

197184
private void controlShipRCS(Vector targetPosition, double forwardsDistanceLimit) {
@@ -205,36 +192,61 @@ private void controlShipRCS(Vector targetPosition, double forwardsDistanceLimit)
205192
currentYAxisSpeed = (targetPosition.y - lastYTargetPos) * sleepTime;
206193
currentZAxisSpeed = (targetPosition.z - lastZTargetPos) * sleepTime;
207194

208-
dockingStep = checkDockingStep(targetPosition, forwardsDistanceLimit);
195+
double sidewaysDistance = Math.abs(targetPosition.x);
196+
double upwardsDistance = Math.abs(targetPosition.z);
197+
boolean isInFrontOfTarget = Math.signum(targetPosition.y) == 1;
198+
boolean isOnTheBackOfTarget = Math.signum(targetPosition.y) == -1 && targetPosition.y < forwardsDistanceLimit;
209199
float forwardsError, upwardsError, sidewaysError = 0;
200+
210201
switch (dockingStep) {
211202
case APPROACH:
212203
// Calcular a aceleração para cada eixo no RCS:
213204
forwardsError = calculateThrottle(forwardsDistanceLimit, forwardsDistanceLimit * 3, currentYAxisSpeed,
214-
targetPosition.y, SPEED_LIMIT);
215-
sidewaysError = calculateThrottle(0, 5, currentXAxisSpeed, targetPosition.x, SPEED_LIMIT);
216-
upwardsError = calculateThrottle(0, 5, currentZAxisSpeed, targetPosition.z, SPEED_LIMIT);
205+
targetPosition.y, DOCKING_MAX_SPEED);
206+
sidewaysError = calculateThrottle(0, 5, currentXAxisSpeed, targetPosition.x, DOCKING_MAX_SPEED);
207+
upwardsError = calculateThrottle(0, 5, currentZAxisSpeed, targetPosition.z, DOCKING_MAX_SPEED);
217208
control.setForward(forwardsError);
218209
control.setRight(sidewaysError);
219210
control.setUp(-upwardsError);
211+
DockingJPanel.setDockingStep(Bundle.getString("pnl_docking_step_approach"));
220212
break;
221213
case LINE_UP_WITH_TARGET:
222214
forwardsError = calculateThrottle(forwardsDistanceLimit, forwardsDistanceLimit * 3, currentYAxisSpeed,
223215
targetPosition.y, 0);
224-
sidewaysError = calculateThrottle(0, 10, currentXAxisSpeed, targetPosition.x, SPEED_LIMIT);
225-
upwardsError = calculateThrottle(0, 10, currentZAxisSpeed, targetPosition.z, SPEED_LIMIT);
216+
sidewaysError = calculateThrottle(0, 10, currentXAxisSpeed, targetPosition.x, DOCKING_MAX_SPEED);
217+
upwardsError = calculateThrottle(0, 10, currentZAxisSpeed, targetPosition.z, DOCKING_MAX_SPEED);
226218
control.setForward(forwardsError);
227219
control.setRight(sidewaysError);
228220
control.setUp(-upwardsError);
221+
DockingJPanel.setDockingStep(Bundle.getString("pnl_docking_step_line_up_with_target"));
229222
break;
230223
case GO_IN_FRONT_OF_TARGET:
231224
forwardsError = calculateThrottle(-20, -10, currentYAxisSpeed,
232-
targetPosition.y, SPEED_LIMIT);
225+
targetPosition.y, DOCKING_MAX_SPEED);
226+
sidewaysError = calculateThrottle(0, 5, currentXAxisSpeed, targetPosition.x, 0);
227+
upwardsError = calculateThrottle(0, 5, currentZAxisSpeed, targetPosition.z, 0);
228+
control.setForward(forwardsError);
229+
control.setRight(sidewaysError);
230+
control.setUp(-upwardsError);
231+
if (isInFrontOfTarget) {
232+
dockingStep = DOCKING_STEPS.STOP_RELATIVE_SPEED;
233+
break;
234+
}
235+
DockingJPanel.setDockingStep(Bundle.getString("pnl_docking_step_go_in_front_of_target"));
236+
break;
237+
case STOP_RELATIVE_SPEED:
238+
forwardsError = calculateThrottle(0, 5, currentYAxisSpeed, targetPosition.y, 0);
233239
sidewaysError = calculateThrottle(0, 5, currentXAxisSpeed, targetPosition.x, 0);
234240
upwardsError = calculateThrottle(0, 5, currentZAxisSpeed, targetPosition.z, 0);
235241
control.setForward(forwardsError);
236242
control.setRight(sidewaysError);
237243
control.setUp(-upwardsError);
244+
if ((Math.abs(currentXAxisSpeed) < 1) && (Math.abs(currentYAxisSpeed) < 1)
245+
&& (Math.abs(currentZAxisSpeed) < 1)) {
246+
dockingStep = DOCKING_STEPS.APPROACH;
247+
break;
248+
}
249+
DockingJPanel.setDockingStep(Bundle.getString("pnl_docking_step_stop_relative_speed"));
238250
break;
239251
}
240252
System.out.println(dockingStep);

src/main/java/com/pesterenan/utils/Modulos.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,22 @@ public enum Modulos {
1010
CIRCULAR("Circular"),
1111
CUBICA("Cúbica"),
1212
DIRECAO("Direção"),
13+
DISTANCIA_SEGURA("Distância Segura"),
1314
EXECUTAR("Executar"),
1415
EXPONENCIAL("Exponencial"),
1516
FUNCAO("Função"),
1617
INCLINACAO("Inclinação"),
1718
MARCADOR_MAPA("Marcador no mapa"),
1819
MAX_TWR("Max_TWR"),
20+
MODULE_MANEUVER("MANEUVER"),
21+
MODULO("Módulo"),
1922
MODULO_CRIAR_MANOBRAS("CRIAR_MANOBRAS"),
2023
MODULO_DECOLAGEM("LIFTOFF"),
21-
MODULE_MANEUVER("MANEUVER"),
22-
MODULO_POUSO_SOBREVOAR("HOVER"),
24+
MODULO_DOCKING("DOCKING"),
2325
MODULO_POUSO("LANDING"),
26+
MODULO_POUSO_SOBREVOAR("HOVER"),
2427
MODULO_ROVER("ROVER"),
25-
MODULO_DOCKING("DOCKING"),
2628
MODULO_TELEMETRIA("TELEMETRY"),
27-
MODULO("Módulo"),
2829
NAVE_ALVO("Nave alvo"),
2930
NOME_MARCADOR("Nome do marcador"),
3031
ORBITA_BAIXA("ÓRBITA BAIXA"),

src/main/java/com/pesterenan/views/DockingJPanel.java

Lines changed: 53 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,10 @@ public class DockingJPanel extends JPanel implements UIMethods {
1919

2020
private static final long serialVersionUID = 0L;
2121

22-
private JLabel lblMaxSpeed;
23-
private JTextField txfMaxSpeed;
22+
private JLabel lblMaxSpeed, lblSafeDistance, lblCurrentDockingStepText;
23+
private static JLabel lblDockingStep;
24+
25+
private JTextField txfMaxSpeed, txfSafeDistance;
2426
private JButton btnBack, btnStartDocking;
2527

2628
public DockingJPanel() {
@@ -32,10 +34,13 @@ public DockingJPanel() {
3234
@Override
3335
public void initComponents() {
3436
// Labels:
35-
lblMaxSpeed = new JLabel(Bundle.getString("pnl_rover_lbl_max_speed"));
36-
37+
lblMaxSpeed = new JLabel(Bundle.getString("pnl_docking_max_speed"));
38+
lblSafeDistance = new JLabel(Bundle.getString("pnl_docking_safe_distance"));
39+
lblDockingStep = new JLabel(Bundle.getString("pnl_docking_step_ready"));
40+
lblCurrentDockingStepText = new JLabel(Bundle.getString("pnl_docking_current_step"));
3741
// Textfields:
3842
txfMaxSpeed = new JTextField("3");
43+
txfSafeDistance = new JTextField("50");
3944

4045
// Buttons:
4146
btnBack = new JButton(Bundle.getString("pnl_rover_btn_back"));
@@ -51,6 +56,9 @@ public void setupComponents() {
5156
txfMaxSpeed.setHorizontalAlignment(SwingConstants.RIGHT);
5257
txfMaxSpeed.setMaximumSize(BTN_DIMENSION);
5358
txfMaxSpeed.setPreferredSize(BTN_DIMENSION);
59+
txfSafeDistance.setHorizontalAlignment(SwingConstants.RIGHT);
60+
txfSafeDistance.setMaximumSize(BTN_DIMENSION);
61+
txfSafeDistance.setPreferredSize(BTN_DIMENSION);
5462

5563
btnBack.addActionListener(MainGui::backToTelemetry);
5664
btnBack.setMaximumSize(BTN_DIMENSION);
@@ -74,12 +82,27 @@ public void layoutComponents() {
7482
pnlMaxSpeed.add(Box.createHorizontalGlue());
7583
pnlMaxSpeed.add(txfMaxSpeed);
7684

77-
JPanel pnlRoverControls = new JPanel();
78-
pnlRoverControls.setLayout(new BoxLayout(pnlRoverControls, BoxLayout.Y_AXIS));
79-
pnlRoverControls.setBorder(MARGIN_BORDER_10_PX_LR);
80-
pnlRoverControls.add(MainGui.createMarginComponent(0, 6));
81-
pnlRoverControls.add(pnlMaxSpeed);
82-
pnlRoverControls.add(Box.createVerticalGlue());
85+
JPanel pnlSafeDistance = new JPanel();
86+
pnlSafeDistance.setLayout(new BoxLayout(pnlSafeDistance, BoxLayout.X_AXIS));
87+
pnlSafeDistance.add(lblSafeDistance);
88+
pnlSafeDistance.add(Box.createHorizontalGlue());
89+
pnlSafeDistance.add(txfSafeDistance);
90+
91+
JPanel pnlDockingStep = new JPanel();
92+
pnlDockingStep.setLayout(new BoxLayout(pnlDockingStep, BoxLayout.X_AXIS));
93+
pnlDockingStep.add(lblCurrentDockingStepText);
94+
pnlDockingStep.add(Box.createHorizontalGlue());
95+
pnlDockingStep.add(lblDockingStep);
96+
97+
JPanel pnlDockingControls = new JPanel();
98+
pnlDockingControls.setLayout(new BoxLayout(pnlDockingControls, BoxLayout.Y_AXIS));
99+
pnlDockingControls.setBorder(MARGIN_BORDER_10_PX_LR);
100+
pnlDockingControls.add(MainGui.createMarginComponent(0, 6));
101+
pnlDockingControls.add(pnlMaxSpeed);
102+
pnlDockingControls.add(pnlSafeDistance);
103+
pnlDockingControls.add(Box.createVerticalGlue());
104+
pnlDockingControls.add(pnlDockingStep);
105+
pnlDockingControls.add(Box.createVerticalGlue());
83106

84107
JPanel pnlButtons = new JPanel();
85108
pnlButtons.setLayout(new BoxLayout(pnlButtons, BoxLayout.X_AXIS));
@@ -89,29 +112,40 @@ public void layoutComponents() {
89112

90113
JPanel pnlMain = new JPanel();
91114
pnlMain.setLayout(new BoxLayout(pnlMain, BoxLayout.X_AXIS));
92-
pnlRoverControls.setAlignmentY(TOP_ALIGNMENT);
93-
pnlMain.add(pnlRoverControls);
115+
pnlDockingControls.setAlignmentY(TOP_ALIGNMENT);
116+
pnlMain.add(pnlDockingControls);
94117

95118
setLayout(new BorderLayout());
96119
add(pnlMain, BorderLayout.CENTER);
97120
add(pnlButtons, BorderLayout.SOUTH);
98121
}
99122

123+
public static void setDockingStep(String step) {
124+
lblDockingStep.setText(step);
125+
}
126+
100127
private void handleStartDocking(ActionEvent e) {
101-
System.out.println("chamou startdocking");
102-
Map<String, String> commands = new HashMap<>();
103-
commands.put(Modulos.MODULO.get(), Modulos.MODULO_DOCKING.get());
104-
commands.put(Modulos.VELOCIDADE_MAX.get(), txfMaxSpeed.getText());
105-
MechPeste.newInstance().startModule(commands);
128+
if (validateTextFields()) {
129+
Map<String, String> commands = new HashMap<>();
130+
commands.put(Modulos.MODULO.get(), Modulos.MODULO_DOCKING.get());
131+
commands.put(Modulos.DISTANCIA_SEGURA.get(), txfSafeDistance.getText());
132+
commands.put(Modulos.VELOCIDADE_MAX.get(), txfMaxSpeed.getText());
133+
MechPeste.newInstance().startModule(commands);
134+
}
106135
}
107136

108137
private boolean validateTextFields() {
109138
try {
110139
if (Float.parseFloat(txfMaxSpeed.getText()) > 10) {
111-
throw new NumberFormatException();
140+
StatusJPanel.setStatusMessage("Velocidade de acoplagem muito alta. Tem que ser menor que 10m/s.");
141+
return false;
142+
}
143+
if (Float.parseFloat(txfSafeDistance.getText()) > 200) {
144+
StatusJPanel.setStatusMessage("Distância segura muito alta. Tem que ser menor que 200m.");
145+
return false;
112146
}
113147
} catch (NumberFormatException e) {
114-
StatusJPanel.setStatusMessage(Bundle.getString("pnl_rover_max_speed_above_3"));
148+
StatusJPanel.setStatusMessage(Bundle.getString("pnl_lift_stat_only_numbers"));
115149
return false;
116150
} catch (IllegalArgumentException e) {
117151
StatusJPanel.setStatusMessage(Bundle.getString("pnl_rover_waypoint_name_not_empty"));

src/main/resources/MechPesteBundle.properties

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1+
btn_func_create_maneuver = Create Maneuvers
2+
btn_func_docking = Docking
13
btn_func_landing = Auto Landing
24
btn_func_liftoff = Orbital Liftoff
3-
btn_func_create_maneuver = Create Maneuvers
45
btn_func_maneuver = Maneuvers
56
btn_func_rover = Drive Rover
6-
btn_func_docking = Docking
77
btn_stat_connect = Connect
88
installer_dialog_btn_browse = Browse...
99
installer_dialog_btn_cancel = Cancel
@@ -19,8 +19,16 @@ main_mntm_about = About
1919
main_mntm_change_vessels = Change vessels
2020
main_mntm_exit = Exit
2121
main_mntm_install_krpc = Install KRPC
22-
pnl_func_title = Functions
2322
pnl_common_lbl_limit_twr = Maximum TWR\:
23+
pnl_docking_current_step = Current docking step:
24+
pnl_docking_step_approach = Approaching...
25+
pnl_docking_step_go_in_front_of_target = Going in front of target...
26+
pnl_docking_step_line_up_with_target = Lining up with target...
27+
pnl_docking_step_stop_relative_speed = Stopping relative speed...
28+
pnl_docking_step_ready = Ready.
29+
pnl_docking_max_speed = Max. Docking Speed:
30+
pnl_docking_safe_distance = Safe Distance to approach:
31+
pnl_func_title = Functions
2432
pnl_land_border = Automatic Landing
2533
pnl_land_btn_back = Back
2634
pnl_land_btn_hover = Hover
@@ -62,8 +70,8 @@ pnl_mnv_lbl_adj_inc = Adjust inclination\:
6270
pnl_mnv_lbl_exec_mnv = Execute next maneuver\:
6371
pnl_rover_border = Drive Rover\:
6472
pnl_rover_btn_back = Back
65-
pnl_rover_btn_drive = Drive
6673
pnl_rover_btn_docking = Start Docking
74+
pnl_rover_btn_drive = Drive
6775
pnl_rover_default_name = Target
6876
pnl_rover_lbl_max_speed = Max Speed\:
6977
pnl_rover_max_speed_above_3 = Max speed must be over 3m/s\u00B2

0 commit comments

Comments
 (0)