Example #1
0
        /// <summary>
        /// Calculates the selected area.
        /// </summary>
        protected virtual void CalculateSelectedArea()
        {
            _selectedTiles.Clear();

            Vector2 worldMousePosition = MouseManager.GetWorldMousePosition();

            Rectangle currentTilePosition = TilePosition(worldMousePosition);

            // Fills up a rectangle with tiles depending the position of the current tile (currentTilePosition)
            // In steps of 32, the pixel count
            // TODO: Don't hardcode pixelcount
            if (_startTilePosition.X <= currentTilePosition.X && _startTilePosition.Y <= currentTilePosition.Y)
            {
                for (int x = _startTilePosition.X; x <= currentTilePosition.X; x += 32)
                {
                    for (int y = _startTilePosition.Y; y <= currentTilePosition.Y; y += 32)
                    {
                        AddSelectedTile(x, y);
                    }
                }
            }
            else if (_startTilePosition.X <= currentTilePosition.X && _startTilePosition.Y >= currentTilePosition.Y)
            {
                for (int x = _startTilePosition.X; x <= currentTilePosition.X; x += 32)
                {
                    for (int y = _startTilePosition.Y; y >= currentTilePosition.Y; y -= 32)
                    {
                        AddSelectedTile(x, y);
                    }
                }
            }
            else if (_startTilePosition.X >= currentTilePosition.X && _startTilePosition.Y >= currentTilePosition.Y)
            {
                for (int x = _startTilePosition.X; x >= currentTilePosition.X; x -= 32)
                {
                    for (int y = _startTilePosition.Y; y >= currentTilePosition.Y; y -= 32)
                    {
                        AddSelectedTile(x, y);
                    }
                }
            }
            else if (_startTilePosition.X >= currentTilePosition.X && _startTilePosition.Y <= currentTilePosition.Y)
            {
                for (int x = _startTilePosition.X; x >= currentTilePosition.X; x -= 32)
                {
                    for (int y = _startTilePosition.Y; y <= currentTilePosition.Y; y += 32)
                    {
                        AddSelectedTile(x, y);
                    }
                }
            }
        }
Example #2
0
        protected override void CalculateSelectedArea()
        {
            _selectedTiles.Clear();

            Vector2 worldMousePosition = MouseManager.GetWorldMousePosition();

            Rectangle currentTilePosition = TilePosition(worldMousePosition);

            if (currentTilePosition.X > 160)
            {
            }

            // TODO: Fix this
            if (_startTilePosition.X <= currentTilePosition.X && _startTilePosition.Y <= currentTilePosition.Y)
            {
                for (int x = _startTilePosition.X; x <= currentTilePosition.X; x += 32)
                {
                    AddSelectedTile(x, _startTilePosition.Y);
                }
            }
            else if (_startTilePosition.X <= currentTilePosition.X && _startTilePosition.Y >= currentTilePosition.Y)
            {
                for (int y = _startTilePosition.Y; y >= currentTilePosition.Y; y -= 32)
                {
                    AddSelectedTile(_startTilePosition.X, y);
                }
            }
            else if (_startTilePosition.X >= currentTilePosition.X && _startTilePosition.Y >= currentTilePosition.Y)
            {
                for (int x = _startTilePosition.X; x >= currentTilePosition.X; x -= 32)
                {
                    AddSelectedTile(x, _startTilePosition.Y);
                }
            }
            else if (_startTilePosition.X >= currentTilePosition.X && _startTilePosition.Y <= currentTilePosition.Y)
            {
                for (int y = _startTilePosition.Y; y <= currentTilePosition.Y; y += 32)
                {
                    AddSelectedTile(_startTilePosition.X, y);
                }
            }
        }