moving to core/
[debian/openrocket] / core / src / net / sf / openrocket / simulation / listeners / SimulationEventListener.java
diff --git a/core/src/net/sf/openrocket/simulation/listeners/SimulationEventListener.java b/core/src/net/sf/openrocket/simulation/listeners/SimulationEventListener.java
new file mode 100644 (file)
index 0000000..6cbb87f
--- /dev/null
@@ -0,0 +1,61 @@
+package net.sf.openrocket.simulation.listeners;
+
+import net.sf.openrocket.motor.MotorId;
+import net.sf.openrocket.motor.MotorInstance;
+import net.sf.openrocket.rocketcomponent.MotorMount;
+import net.sf.openrocket.rocketcomponent.RecoveryDevice;
+import net.sf.openrocket.simulation.FlightEvent;
+import net.sf.openrocket.simulation.SimulationStatus;
+import net.sf.openrocket.simulation.exception.SimulationException;
+
+public interface SimulationEventListener {
+       
+
+       /**
+        * Called before adding a flight event to the event queue.
+        * 
+        * @param status        the simulation status
+        * @param event         the event that is being added
+        * @return                      <code>true</code> to add the event,
+        *                                      <code>false</code> to abort adding event to event queue
+        */
+       public boolean addFlightEvent(SimulationStatus status, FlightEvent event) throws SimulationException;
+       
+       
+
+       /**
+        * Called before handling a flight event.
+        * 
+        * @param status        the simulation status
+        * @param event         the event that is taking place
+        * @return                      <code>true</code> to continue handling the event,
+        *                                      <code>false</code> to abort handling
+        */
+       public boolean handleFlightEvent(SimulationStatus status, FlightEvent event) throws SimulationException;
+       
+       
+       /**
+        * Motor ignition event.
+        * 
+        * @param status        the simulation status
+        * @param motorId       the motor id in the MotorInstanceConfiguration
+        * @param mount         the motor mount containing the motor
+        * @param instance      the motor instance being ignited
+        * @return                      <code>true</code> to ignite the motor, <code>false</code> to abort ignition
+        */
+       public boolean motorIgnition(SimulationStatus status, MotorId motorId, MotorMount mount,
+                       MotorInstance instance) throws SimulationException;
+       
+       
+       /**
+        * Recovery device deployment.
+        * 
+        * @param status                        the simulation status
+        * @param recoveryDevice        the recovery device that is being deployed.
+        * @return                                      <code>true</code> to deploy the recovery device, <code>false</code> to abort deployment
+        */
+       public boolean recoveryDeviceDeployment(SimulationStatus status, RecoveryDevice recoveryDevice)
+                       throws SimulationException;
+       
+
+}