Fix recovery event when first booster component is not a body tube
This commit is contained in:
parent
c009b23e47
commit
ea7ee41a25
@ -11,6 +11,7 @@ import net.sf.openrocket.rocketcomponent.DeploymentConfiguration;
|
|||||||
import net.sf.openrocket.rocketcomponent.Parachute;
|
import net.sf.openrocket.rocketcomponent.Parachute;
|
||||||
import net.sf.openrocket.rocketcomponent.RecoveryDevice;
|
import net.sf.openrocket.rocketcomponent.RecoveryDevice;
|
||||||
import net.sf.openrocket.rocketcomponent.Rocket;
|
import net.sf.openrocket.rocketcomponent.Rocket;
|
||||||
|
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||||
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
@ -239,11 +240,18 @@ public class RecoveryHandler extends AbstractElementHandler {
|
|||||||
} else {
|
} else {
|
||||||
// If there are multiple stages, add the recovery device to the first booster
|
// If there are multiple stages, add the recovery device to the first booster
|
||||||
AxialStage booster1 = rocket.getStage(1);
|
AxialStage booster1 = rocket.getStage(1);
|
||||||
if (booster1.getChildCount() < 1 || !(booster1.getChild(0) instanceof BodyTube)) {
|
BodyTube boosterTube = null;
|
||||||
|
for (int i = 0; i < booster1.getChildCount(); i++) {
|
||||||
|
if (booster1.getChild(i) instanceof BodyTube) {
|
||||||
|
boosterTube = (BodyTube) booster1.getChild(i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (boosterTube == null) {
|
||||||
warnings.add("No booster body tube found." + recoveryDevice.getName() + " will not be added to the rocket.");
|
warnings.add("No booster body tube found." + recoveryDevice.getName() + " will not be added to the rocket.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
bodyTube = (BodyTube) booster1.getChild(0);
|
bodyTube = boosterTube;
|
||||||
offset = bodyTube.getOuterRadius() * 1.125;
|
offset = bodyTube.getOuterRadius() * 1.125;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user