ChessBoardVisualLib.View.ChessBoardControl.AnimateMove C# (CSharp) Method

AnimateMove() public method

public AnimateMove ( DeltaChange dc, Move move ) : void
dc Queem.Core.History.DeltaChange
move Queem.Core.Move
return void
        public void AnimateMove(DeltaChange dc, Move move)
        {
            this.OnMoveAnimationPreview();
            this.SetupAnimationCount(move);

            while (dc.HasItems())
            {
                var change = dc.PopLast();

                switch(change.Action)
                {
                    case MoveAction.Move:
                        this.InnerAnimateMove(new Move(change.Square, change.AdditionalSquare), Queem.Core.Figure.Nobody);
                        break;

                    case MoveAction.Deletion:
                        if (change.Square != move.To)
                            // if not equal - passing capture
                            this.viewModel.RemoveFigure(change.Square);
                        break;

                    case MoveAction.Creation:
                        this.viewModel.UpdateFigure(change.Square,
                            change.FigureType, change.FigureColor);
                        break;
                }
            }
        }