[Bugfix] Modestly reduced extra configuration instances

This commit is contained in:
Daniel_M_Williams 2015-10-27 21:42:10 -04:00
parent c7c250ba8d
commit cac0a52990
2 changed files with 8 additions and 8 deletions

View File

@ -12,7 +12,7 @@ import net.sf.openrocket.aerodynamics.BarrowmanCalculator;
import net.sf.openrocket.aerodynamics.WarningSet; import net.sf.openrocket.aerodynamics.WarningSet;
import net.sf.openrocket.formatting.RocketDescriptor; import net.sf.openrocket.formatting.RocketDescriptor;
import net.sf.openrocket.masscalc.MassCalculator; import net.sf.openrocket.masscalc.MassCalculator;
import net.sf.openrocket.motor.MotorInstanceConfiguration; import net.sf.openrocket.motor.MotorInstance;
import net.sf.openrocket.rocketcomponent.FlightConfiguration; import net.sf.openrocket.rocketcomponent.FlightConfiguration;
import net.sf.openrocket.rocketcomponent.Rocket; import net.sf.openrocket.rocketcomponent.Rocket;
import net.sf.openrocket.simulation.BasicEventSimulationEngine; import net.sf.openrocket.simulation.BasicEventSimulationEngine;
@ -275,12 +275,13 @@ public class Simulation implements ChangeSource, Cloneable {
} }
} }
FlightConfiguration c = new FlightConfiguration( options.getConfigID(), this.getRocket()); FlightConfiguration config = rocket.getFlightConfiguration(options.getConfigID());
MotorInstanceConfiguration motors = new MotorInstanceConfiguration(c); List<MotorInstance> motorList = config.getActiveMotors();
//Make sure this simulation has motors. //Make sure this simulation has motors.
if (0 == motors.getMotorCount()) { if (0 == motorList.size()){
status = Status.CANT_RUN; status = Status.CANT_RUN;
log.warn(" Unable to simulate: no motors loaded.");
} }
return status; return status;

View File

@ -70,7 +70,6 @@ public class FlightConfiguration implements FlightConfigurableParameter<FlightCo
* @param rocket the rocket * @param rocket the rocket
*/ */
public FlightConfiguration(final FlightConfigurationID _fcid, Rocket rocket ) { public FlightConfiguration(final FlightConfigurationID _fcid, Rocket rocket ) {
System.err.println(" creating FlightConfiguration, with fcid: "+_fcid);
if( null == _fcid){ if( null == _fcid){
this.fcid = new FlightConfigurationID(); this.fcid = new FlightConfigurationID();
}else{ }else{
@ -456,10 +455,10 @@ public class FlightConfiguration implements FlightConfigurableParameter<FlightCo
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public FlightConfiguration clone() { public FlightConfiguration clone() {
FlightConfiguration config = new FlightConfiguration( null, this.getRocket() ); FlightConfiguration config = new FlightConfiguration( this.fcid, this.getRocket() );
config.listenerList = new ArrayList<EventListener>(); config.listenerList = new ArrayList<EventListener>();
config.stageMap = (HashMap<Integer, StageFlags>) this.stageMap.clone(); config.stageMap = (HashMap<Integer, StageFlags>) this.stageMap.clone();
config.cachedBounds = new ArrayList<Coordinate>(); config.cachedBounds = this.cachedBounds.clone();
config.boundsModID = -1; config.boundsModID = -1;
config.refLengthModID = -1; config.refLengthModID = -1;
rocket.addComponentChangeListener(config); rocket.addComponentChangeListener(config);