internal MovieSequence( MovieSequence sequence ) { this.frames = sequence.frames; this.isLoop = sequence.isLoop; this.Name = sequence.Name; this.FrameCount = this.frames.Count; this.Rate = sequence.Rate; Reset ( this ); }
internal Anime( string name, string resourceName, Vector2 location, int width, int height, int rate, string defaultSequenceName, MovieSequence[] sequences, params AnimeAction[] actions ) : base(name, resourceName, location, width, height, rate, 0f, defaultSequenceName, sequences) { if ( null != actions ) foreach ( AnimeAction action in actions ) if ( null != action ) { action.Anime = this; this.actions.Add ( action ); } }
internal static bool Next( MovieSequence sequence ) { bool isEnded = sequence.currentFrameIndex == sequence.frames.Count; if ( isEnded ) { sequence.IsLooped = true; if ( !sequence.isLoop ) return isEnded; sequence.currentFrameIndex = 1; } else sequence.currentFrameIndex++; sequence.CurrentFrame = sequence.frames[sequence.currentFrameIndex - 1]; return isEnded; }
internal static void Reset( MovieSequence sequence ) { sequence.IsLooped = false; sequence.currentFrameIndex = 1; sequence.CurrentFrame = sequence.frames[sequence.currentFrameIndex - 1]; }
internal static MovieSequence Clone(MovieSequence sequence ) { return new MovieSequence ( sequence ); }