package rajawali.animation;
import java.util.ArrayList;
import java.util.List;
public class Animation3DQueue implements Animation3DListener {
private List<Animation3D> mAnimations;
private Animation3DListener mAnimationListener;
private int mCurrentAnimation;
public Animation3DQueue() {
mAnimations = new ArrayList<Animation3D>();
mCurrentAnimation = 0;
}
public void addAnimation(Animation3D animation) {
mAnimations.add(animation);
animation.addAnimationListener(this);
}
public void setAnimationListener(Animation3DListener animationListener) {
mAnimationListener = animationListener;
}
public void onAnimationEnd(Animation3D animation) {
if(mCurrentAnimation == mAnimations.size() - 1) {
if(mAnimationListener != null) mAnimationListener.onAnimationEnd(null);
mCurrentAnimation = 0;
return;
}
Animation3D anim = mAnimations.get(++mCurrentAnimation);
anim.start();
}
public void onAnimationRepeat(Animation3D animation) {
}
public void onAnimationStart(Animation3D animation) {
}
public void onAnimationUpdate(Animation3D animation, float interpolatedTime) {
}
public void start() {
if(mAnimations.size() == 0) return;
Animation3D animation = mAnimations.get(0);
animation.start();
if(mAnimationListener != null) mAnimationListener.onAnimationStart(null);
}
}