package net.sf.openrocket.simulation.listeners.example; import net.sf.openrocket.simulation.SimulationStatus; import net.sf.openrocket.simulation.exception.SimulationException; import net.sf.openrocket.simulation.listeners.AbstractSimulationListener; import net.sf.openrocket.util.Coordinate; /** * Simulation listener that launches a rocket from a specific altitude. * <p> * The altitude is read from the system property "openrocket.airstart.altitude" * if defined, otherwise a default altitude of 1000 meters is used. */ public class AirStart extends AbstractSimulationListener { /** Default launch altitude */ private static final double DEFAULT_ALTITUDE = 1000.0; @Override public void startSimulation(SimulationStatus status) throws SimulationException { // Get the launch altitude double altitude; String arg = System.getProperty("openrocket.airstart.altitude"); try { altitude = Double.parseDouble(arg); } catch (RuntimeException e) { altitude = DEFAULT_ALTITUDE; } // Modify launch position Coordinate position = status.getRocketPosition(); position = position.add(0, 0, altitude); status.setRocketPosition(position); } }