package org.andengine.entity.sprite; import org.andengine.util.modifier.IModifier.DeepCopyNotSupportedException; /** * (c) Zynga 2012 * * @author Nicolas Gramlich <ngramlich@zynga.com> * @since 16:59:57 - 03.05.2012 */ public interface IAnimationData { // =========================================================== // Constants // =========================================================== public static final int LOOP_CONTINUOUS = -1; // =========================================================== // Methods // =========================================================== public int[] getFrames(); public long[] getFrameDurations(); public int getLoopCount(); public int getFrameCount(); public int getFirstFrameIndex(); /** * @return in milliseconds. */ public long getAnimationDuration(); public int calculateCurrentFrameIndex(final long pAnimationProgress); public void set(final long pFrameDurationEach, final int pFrameCount); public void set(final long pFrameDurationEach, final int pFrameCount, final boolean pLoop); public void set(final long pFrameDurationEach, final int pFrameCount, final int pLoopCount); public void set(final long[] pFrameDurations); public void set(final long[] pFrameDurations, final boolean pLoop); public void set(final long[] pFrameDurations, final int pLoopCount); public void set(final long[] pFrameDurations, final int pFirstFrameIndex, final int pLastFrameIndex); public void set(final long[] pFrameDurations, final int pFirstFrameIndex, final int pLastFrameIndex, final boolean pLoop); /** * @param pFrameDurations must have the same length as pFirstFrameIndex to pLastFrameIndex. * @param pFirstFrameIndex * @param pLastFrameIndex * @param pLoopCount */ public void set(final long[] pFrameDurations, final int pFirstFrameIndex, final int pLastFrameIndex, final int pLoopCount); /** * Animate specifics frames. * * @param pFrameDurations must have the same length as pFrames. * @param pFrames indices of the frames to animate. */ public void set(final long[] pFrameDurations, final int[] pFrames); /** * Animate specifics frames. * * @param pFrameDurations must have the same length as pFrames. * @param pFrames indices of the frames to animate. * @param pLoop */ public void set(final long[] pFrameDurations, final int[] pFrames, final boolean pLoop); /** * Animate specifics frames. * * @param pFrameDurations must have the same length as pFrames. * @param pFrames indices of the frames to animate. * @param pLoopCount */ public void set(final long[] pFrameDurations, final int[] pFrames, final int pLoopCount); public void set(final IAnimationData pAnimationData); public IAnimationData deepCopy() throws DeepCopyNotSupportedException; }