package org.pollux3d.state;
import org.pollux3d.map.Ship;
import org.pollux3d.motion.ShipDemoMotion;
import org.pollux3d.motion.ShipMotionTrack;
import com.jme3.animation.LoopMode;
import com.jme3.app.Application;
import com.jme3.app.state.AbstractAppState;
import com.jme3.app.state.AppStateManager;
import com.jme3.cinematic.events.MotionTrack;
import com.jme3.cinematic.events.MotionTrack.Direction;
import com.jme3.math.Quaternion;
public class ShipDemoMotionState extends AbstractAppState {
private MotionTrack motionTrack;
private ShipDemoMotion motionPath;
private float timeLeft = -1;
public void initialize(AppStateManager stateManager, Application app){
super.initialize(stateManager, app);
}
public void startDemoMotion(Ship ship) {
motionPath = new ShipDemoMotion();
motionTrack = new ShipMotionTrack(ship, motionPath);
//motionTrack.setDirectionType(Direction.Path);
motionTrack.setDirectionType(Direction.PathAndRotation);
motionTrack.setRotation(new Quaternion().fromAngles(0, 0, 0));
motionTrack.setSpeed(0.5f);
motionTrack.setLoopMode(LoopMode.Loop);
motionTrack.pause();
timeLeft = 10;
}
/* (non-Javadoc
* @see com.jme3.app.state.AbstractAppState#update(float)
*/
@Override
public void update(float tpf) {
if (timeLeft > 0) timeLeft -= tpf;
if (timeLeft <= 0 && timeLeft != -1) {
timeLeft = -1;
motionTrack.play();
}
}
}