AStartTest.Form1.panel33_MouseDown C# (CSharp) Method

panel33_MouseDown() private method

private panel33_MouseDown ( object sender, MouseEventArgs e ) : void
sender object
e MouseEventArgs
return void
        private void panel33_MouseDown(object sender, MouseEventArgs e)
        {
            Tile tile = tileMap.GetTileFromPanel((Panel)sender);

            bool startTile = false;
            bool goalTile = false;

            for (int i = 0; i < tileMap.Tiles.Count; i++)
            {
                if (!startTile && tileMap.Tiles[i].IsStart())
                    startTile = true;
                if (!goalTile && tileMap.Tiles[i].IsGoal())
                    goalTile = true;

                if (startTile && goalTile)
                {
                    findPathBtn.Enabled = true;
                    break;
                }
            }

            if (tile.TileType == TileType.Walkable)
                tile.SetTileType(TileType.Blocked);
            else if (tile.TileType == TileType.Blocked)
            {
                if (startTile)
                {
                    if (goalTile)
                    {
                        tile.SetTileType(TileType.Walkable);
                    }
                    else
                    {
                        tile.SetTileType(TileType.Goal);
                        goalTile = true;
                    }
                }
                else
                {
                    tile.SetTileType(TileType.Start);
                    startTile = true;
                }
            }
            else if (tile.TileType == TileType.Start)
            {
                if (goalTile)
                {
                    tile.SetTileType(TileType.Walkable);
                    goalTile = false;
                }
                else
                {
                    tile.SetTileType(TileType.Goal);
                    goalTile = true;
                }
                startTile = false;
            }
            else if (tile.TileType == TileType.Goal)
            {
                tile.SetTileType(TileType.Walkable);
                goalTile = false;
            }
            else
                tile.SetTileType(TileType.Blocked);

            findPathBtn.Enabled = (startTile && goalTile);
            if (findPathBtn.Enabled)
            {
                //ExecuteAStar();
            }
        }