MegaMan.LevelEditor.BrushTool.Click C# (CSharp) Метод

Click() публичный Метод

public Click ( ScreenDrawingSurface surface, Point location ) : void
surface ScreenDrawingSurface
location Point
Результат void
        public void Click(ScreenDrawingSurface surface, Point location)
        {
            Point tilePos = new Point(location.X / surface.Screen.Tileset.TileSize, location.Y / surface.Screen.Tileset.TileSize);

            var selection = surface.Selection;
            if (selection != null)
            {
                // only paint inside selection
                if (!selection.Value.Contains(tilePos))
                {
                    startTiles = null;
                    endTiles = null;
                    return;
                }
            }

            startTiles = new int?[surface.Screen.Width, surface.Screen.Height];
            endTiles = new int?[surface.Screen.Width, surface.Screen.Height];

            // check for line drawing
            if ((Control.ModifierKeys & Keys.Shift) != Keys.None)
            {
                var xdist = Math.Abs(tilePos.X - currentTilePos.X);
                var ydist = Math.Abs(tilePos.Y - currentTilePos.Y);

                if (xdist >= ydist)
                {
                    var min = Math.Min(currentTilePos.X, tilePos.X);
                    var max = Math.Max(currentTilePos.X, tilePos.X);
                    for (int i = min; i <= max; i += brush.Width)
                    {
                        Draw(surface, i, currentTilePos.Y);
                    }
                }
                else
                {
                    var min = Math.Min(currentTilePos.Y, tilePos.Y);
                    var max = Math.Max(currentTilePos.Y, tilePos.Y);
                    for (int i = min; i <= max; i += brush.Height)
                    {
                        Draw(surface, currentTilePos.X, i);
                    }
                }
            }
            else
            {
                Draw(surface, tilePos.X, tilePos.Y);
                held = true;
            }

            currentTilePos = tilePos;
        }