private void CheckPieceMovement(MouseState mouseState)
        {
            if (this._selectedPiece == null || this._lastMouseState == null)
                return;

            if (this._lastMouseState.LeftButton == ButtonState.Pressed && mouseState.LeftButton == ButtonState.Released)
            {
                int j = (mouseState.X + 2) / 58;
                int i = (mouseState.Y + 2) / 58;
                BoardPosition position = new BoardPosition(i, j);

                if (position.I < 8 && position.J < 8 && position.I >= 0 && position.J >= 0)
                {
                    Square originalSquare = this._squares[this._selectedPiece.BoardPosition.I, this._selectedPiece.BoardPosition.J];
                    Square hoveringSquare = this._squares[position.I, position.J];

                    bool valid = RulesValidator.Instance.ValidateNewPosition(this._selectedPiece, originalSquare, hoveringSquare);
                    if (valid)
                    {
                        for (i = 0; i < 8; i++)
                            for (j = 0; j < 8; j++)
                                if (this._squares[i, j].Valid)
                                {
                                    this._squares[i, j].Valid = false;
                                    DrawingManager.Instance.DrawableObjects.Add(this._squares[i, j]);
                                }

                        RulesValidator.Instance.ApplyMovement(this._selectedPiece, originalSquare, hoveringSquare);
                    }
                }
            }
        }
        public void Update(MouseState mouseState)
        {
            this.UpdateSquares(mouseState);
            this.CheckPieceMovement(mouseState);

            this._lastMouseState = mouseState;
        }
        public void Update(MouseState mouseState)
        {
            //MouseState mouseState = Mouse.GetState();

            this._board.Update(mouseState);
        }
        private void CheckAndExecuteSelection(MouseState mouseState)
        {
            if (this._lastMouseState == null)
                return;

            if (mouseState.LeftButton == ButtonState.Released && this._lastMouseState.LeftButton == ButtonState.Pressed &&
                mouseState.X >= this._bounds.Left && mouseState.X <= this._bounds.Right &&
                mouseState.Y >= this._bounds.Top && mouseState.Y <= this._bounds.Bottom)
            {
                CancelEventArgs e = new CancelEventArgs();
                if (this.Selecting != null)
                    this.Selecting(this, e);

                if (!e.Cancel)
                    this._selected = true;
            }

            this._lastMouseState = mouseState;
        }
        public void Update(MouseState mouseState)
        {
            this.CheckAndExecuteSelection(mouseState);

            this._lastMouseState = mouseState;
        }
 private void UpdateSquares(MouseState mouseState)
 {
     for (int i = 0; i < 8; i++)
         for (int j = 0; j < 8; j++)
             this._squares[i, j].Update(mouseState);
 }
 public void Update(MouseState mouseState)
 {
     if (this._piece != null)
         this._piece.Update(mouseState);
 }