CEngineSharp_Editor.Graphics.MapRenderer.PlaceTile C# (CSharp) Method

PlaceTile() private method

private PlaceTile ( Vector2i position ) : void
position Vector2i
return void
        private void PlaceTile(Vector2i position)
        {
            position = new Vector2i(position.X + this._mapEditorProperties.MapEditorLeft, position.Y + this._mapEditorProperties.MapEditorTop);

            for (int x = 0; x < this._selectedTileSprite.TextureRect.Width / 32; x++)
            {
                for (int y = 0; y < this._selectedTileSprite.TextureRect.Height / 32; y++)
                {
                    var tileSpriteRect = new IntRect(this._selectedTileSprite.TextureRect.Left + (x * 32), this._selectedTileSprite.TextureRect.Top + (y * 32), 32, 32);
                    var tileSprite = new Sprite(this._selectedTileSprite.Texture, tileSpriteRect);

                    if (x + position.X >= this._mapEditorProperties.CurrentMap.MapWidth || y + position.Y >= this._mapEditorProperties.CurrentMap.MapHeight)
                        return;

                    if (this._mapEditorProperties.CurrentMap.GetTile(position.X + x, position.Y + y) == null)
                        this._mapEditorProperties.CurrentMap.SetTile(position.X + x, position.Y + y, new Map.Tile());

                    var layer = new Map.Tile.Layer(tileSprite, position.X + x, position.Y + y);
                    this._mapEditorProperties.CurrentMap.GetTile(position.X + x, position.Y + y).Layers[(int)this._mapEditorProperties.CurrentLayer] = layer;

                    if (this._mapEditorProperties.TileBlockedAttribute)
                    {
                        this._mapEditorProperties.CurrentMap.GetTile(position.X + x, position.Y + y).Blocked = true;

                        this._mapEditorProperties.CurrentMap.GetTile(position.X + x, position.Y + y).BlockedCover = new RectangleShape(new Vector2f(32, 32));
                        this._mapEditorProperties.CurrentMap.GetTile(position.X + x, position.Y + y).BlockedCover.FillColor = new Color(255, 0, 0, 100);
                        this._mapEditorProperties.CurrentMap.GetTile(position.X + x, position.Y + y).BlockedCover.Position = new Vector2f((position.X + x) * 32, (position.Y + y) * 32);
                    }
                    else
                    {
                        this._mapEditorProperties.CurrentMap.GetTile(position.X + x, position.Y + y).Blocked = false;

                        this._mapEditorProperties.CurrentMap.GetTile(position.X + x, position.Y + y).BlockedCover = null;
                    }
                }
            }
        }