diff --git a/core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java b/core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java index de9e0ca17..232da2090 100644 --- a/core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java +++ b/core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java @@ -321,22 +321,15 @@ public class BasicEventSimulationEngine implements SimulationEngine { (event.getType() != FlightEvent.Type.ALTITUDE) && (event.getType() != FlightEvent.Type.SIMULATION_END)) currentStatus.getWarnings().add(new Warning.EventAfterLanding(event)); - + // Check for motor ignition events, add ignition events to queue for (MotorClusterState state : currentStatus.getActiveMotors() ){ if (state.testForIgnition(currentStatus.getConfiguration(), event)) { - MotorClusterState sourceState = (MotorClusterState) event.getData(); - double ignitionDelay = 0; - if (event.getType() == FlightEvent.Type.BURNOUT) - ignitionDelay = 0; - else if (event.getType() == FlightEvent.Type.EJECTION_CHARGE) - ignitionDelay = sourceState.getEjectionDelay(); - + MotorMount mount = state.getMount(); MotorConfiguration motorInstance = mount.getMotorConfig(this.fcid); - ignitionDelay += motorInstance.getIgnitionDelay(); - final double ignitionTime = currentStatus.getSimulationTime() + ignitionDelay; + final double ignitionTime = currentStatus.getSimulationTime() + motorInstance.getIgnitionDelay(); // TODO: this event seems to get enqueue'd multiple times ... log.info("Queueing Ignition Event for: "+state.toDescription()+" @: "+ignitionTime); diff --git a/core/src/net/sf/openrocket/simulation/SimulationStatus.java b/core/src/net/sf/openrocket/simulation/SimulationStatus.java index 1d8f230e3..0aba10023 100644 --- a/core/src/net/sf/openrocket/simulation/SimulationStatus.java +++ b/core/src/net/sf/openrocket/simulation/SimulationStatus.java @@ -7,6 +7,9 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import net.sf.openrocket.aerodynamics.FlightConditions; import net.sf.openrocket.simulation.exception.SimulationException; import net.sf.openrocket.simulation.listeners.SimulationListenerHelper; @@ -32,6 +35,8 @@ import net.sf.openrocket.util.WorldCoordinate; */ public class SimulationStatus implements Monitorable { + + private static final Logger log = LoggerFactory.getLogger(BasicEventSimulationEngine.class); private SimulationConditions simulationConditions; private FlightConfiguration configuration; @@ -560,6 +565,9 @@ public class SimulationStatus implements Monitorable { */ public void addEvent(FlightEvent event) throws SimulationException { if (SimulationListenerHelper.fireAddFlightEvent(this, event)) { + if (event.getType() != FlightEvent.Type.ALTITUDE) { + log.trace("Adding event to queue: " + event); + } getEventQueue().add(event); } }