diff --git a/core/resources-src/datafiles/openrocket-database b/core/resources-src/datafiles/openrocket-database index 93054dc2b..48eb2172d 160000 --- a/core/resources-src/datafiles/openrocket-database +++ b/core/resources-src/datafiles/openrocket-database @@ -1 +1 @@ -Subproject commit 93054dc2b40d5196433b1d91c636cee2e9dda424 +Subproject commit 48eb2172d58c0db6042bd847a782835df056b287 diff --git a/core/src/main/java/info/openrocket/core/document/Simulation.java b/core/src/main/java/info/openrocket/core/document/Simulation.java index 3ec5ae0f3..3becacabe 100644 --- a/core/src/main/java/info/openrocket/core/document/Simulation.java +++ b/core/src/main/java/info/openrocket/core/document/Simulation.java @@ -419,14 +419,15 @@ public class Simulation implements ChangeSource, Cloneable { SimulationConditions simulationConditions = options.toSimulationConditions(); simulationConditions.setSimulation(this); - for (SimulationListener l : additionalListeners) { - simulationConditions.getSimulationListenerList().add(l); - } for (SimulationExtension extension : simulationExtensions) { extension.initialize(simulationConditions); } + for (SimulationListener l : additionalListeners) { + simulationConditions.getSimulationListenerList().add(l); + } + long t1, t2; log.debug("Simulation: calling simulator"); t1 = System.currentTimeMillis(); diff --git a/core/src/main/java/info/openrocket/core/simulation/extension/example/DampingMoment.java b/core/src/main/java/info/openrocket/core/simulation/extension/example/DampingMoment.java index f64bbadd2..2525e21e3 100644 --- a/core/src/main/java/info/openrocket/core/simulation/extension/example/DampingMoment.java +++ b/core/src/main/java/info/openrocket/core/simulation/extension/example/DampingMoment.java @@ -25,6 +25,9 @@ import info.openrocket.core.unit.UnitGroup; public class DampingMoment extends AbstractSimulationExtension { private static final Logger log = LoggerFactory.getLogger(DampingMoment.class); + // Keep it internal until time to publish in the FlightDataBranch + private double Cdm = Double.NaN; + // Save it as a FlightDataType private static final FlightDataType cdm = FlightDataType.getType("Damping moment coefficient", "Cdm", UnitGroup.UNITS_COEFFICIENT); @@ -62,11 +65,16 @@ public class DampingMoment extends AbstractSimulationExtension { throws SimulationException { // status.getFlightDataBranch().setValue(cdm, aerodynamicPart + propulsivePart); - status.getFlightDataBranch().setValue(cdm, calculate(status, flightConditions)); + Cdm = calculate(status, flightConditions); return flightConditions; } + @Override + public void postStep(SimulationStatus status) { + status.getFlightDataBranch().setValue(cdm, Cdm); + } + private double calculate(SimulationStatus status, FlightConditions flightConditions) { // Work out the propulsive/jet damping part of the moment.