Exemple #1
0
        protected virtual OsbSprite CreateSprite(List <IFragmentableCommand> segment)
        {
            var sprite = new OsbSprite()
            {
                TexturePath     = osbSprite.TexturePath,
                InitialPosition = osbSprite.InitialPosition,
                Origin          = osbSprite.Origin,
            };

            foreach (var command in segment)
            {
                sprite.AddCommand(command);
            }

            return(sprite);
        }
        protected override OsbSprite CreateSprite(List <IFragmentableCommand> segment)
        {
            if (osbAnimation.LoopType == OsbLoopType.LoopOnce && segment.Min(c => c.StartTime) >= osbAnimation.AnimationEndTime)
            {
                //this shouldn't loop again so we need a sprite instead
                var sprite = new OsbSprite()
                {
                    InitialPosition = osbAnimation.InitialPosition,
                    Origin          = osbAnimation.Origin,
                    TexturePath     = getLastFramePath(),
                };

                foreach (var command in segment)
                {
                    sprite.AddCommand(command);
                }

                return(sprite);
            }
            else
            {
                var animation = new OsbAnimation()
                {
                    TexturePath     = osbAnimation.TexturePath,
                    InitialPosition = osbAnimation.InitialPosition,
                    Origin          = osbAnimation.Origin,
                    FrameCount      = osbAnimation.FrameCount,
                    FrameDelay      = osbAnimation.FrameDelay,
                    LoopType        = osbAnimation.LoopType,
                };

                foreach (var command in segment)
                {
                    animation.AddCommand(command);
                }

                return(animation);
            }
        }