public static void Editor_Mapas_AutoCriação(Point Localização, Listas.Estruturas.Azulejo_Dados Dados, SFML.Graphics.Color Cor)
    {
        // Desenha os 4 mini azulejos
        for (byte i = 0; i <= 3; i++)
        {
            Point Destino = Localização, Fonte = Dados.Mini[i];

            // Partes do azulejo
            switch (i)
            {
            case 1: Destino.X += 16; break;

            case 2: Destino.Y += 16; break;

            case 3: Destino.X += 16; Destino.Y += 16; break;
            }

            // Renderiza o mini azulejo
            Desenhar(Jan_Mapa, Tex_Azulejo[Dados.Azulejo], new Rectangle(Fonte.X, Fonte.Y, 16, 16), Editor_Mapas.Zoom(new Rectangle(Destino, new Size(16, 16))), Cor);
        }
    }
    private void Redimensionar()
    {
        byte Largura_Nova = (byte)numLargura.Value, Altura_Nova = (byte)numAltura.Value;
        int  Largura_Diferença, Altura_Diferença;

        // Somente se necessário
        if (Listas.Mapa[Selecionado].Largura == Largura_Nova && Listas.Mapa[Selecionado].Altura == Altura_Nova)
        {
            return;
        }

        // Redimensiona os azulejos
        Listas.Estruturas.Azulejo_Dados[,] TempAzulejo;
        Listas.Estruturas.Mapas_Azulejo_Dados[,] TempAzulejo2;

        // Calcula a diferença
        Largura_Diferença = Largura_Nova - Listas.Mapa[Selecionado].Largura;
        Altura_Diferença  = Altura_Nova - Listas.Mapa[Selecionado].Altura;

        // Azulejo1
        for (byte c = 0; c <= Listas.Mapa[Selecionado].Camada.Count - 1; c++)
        {
            TempAzulejo = new Listas.Estruturas.Azulejo_Dados[Largura_Nova + 1, Altura_Nova + 1];

            for (byte x = 0; x <= Largura_Nova; x++)
            {
                for (byte y = 0; y <= Altura_Nova; y++)
                {
                    // Redimensiona para frente
                    if (!chkInvesamente.Checked)
                    {
                        if (x <= Listas.Mapa[Selecionado].Largura && y <= Listas.Mapa[Selecionado].Altura)
                        {
                            TempAzulejo[x, y] = Listas.Mapa[Selecionado].Camada[c].Azulejo[x, y];
                        }
                        else
                        {
                            TempAzulejo[x, y]      = new Listas.Estruturas.Azulejo_Dados();
                            TempAzulejo[x, y].Mini = new Point[4];
                        }
                    }
                    // Redimensiona para trás
                    else
                    {
                        if (x < Largura_Diferença || y < Altura_Diferença)
                        {
                            TempAzulejo[x, y]      = new Listas.Estruturas.Azulejo_Dados();
                            TempAzulejo[x, y].Mini = new Point[4];
                        }
                        else
                        {
                            TempAzulejo[x, y] = Listas.Mapa[Selecionado].Camada[c].Azulejo[x - Largura_Diferença, y - Altura_Diferença];
                        }
                    }
                }
            }

            // Define os dados
            Listas.Mapa[Selecionado].Camada[c].Azulejo = TempAzulejo;
        }

        // Dados do azulejo
        TempAzulejo2 = new Listas.Estruturas.Mapas_Azulejo_Dados[Largura_Nova + 1, Altura_Nova + 1];
        for (byte x = 0; x <= Largura_Nova; x++)
        {
            for (byte y = 0; y <= Altura_Nova; y++)
            {
                // Redimensiona para frente
                if (!chkInvesamente.Checked)
                {
                    if (x <= Listas.Mapa[Selecionado].Largura && y <= Listas.Mapa[Selecionado].Altura)
                    {
                        TempAzulejo2[x, y] = Listas.Mapa[Selecionado].Azulejo[x, y];
                    }
                    else
                    {
                        TempAzulejo2[x, y]          = new Listas.Estruturas.Mapas_Azulejo_Dados();
                        TempAzulejo2[x, y].Bloqueio = new bool[4];
                    }
                }
                // Redimensiona para trás
                else
                {
                    if (x < Largura_Diferença || y < Altura_Diferença)
                    {
                        TempAzulejo2[x, y]          = new Listas.Estruturas.Mapas_Azulejo_Dados();
                        TempAzulejo2[x, y].Bloqueio = new bool[4];
                    }
                    else
                    {
                        TempAzulejo2[x, y] = Listas.Mapa[Selecionado].Azulejo[x - Largura_Diferença, y - Altura_Diferença];
                    }
                }
            }
        }

        // Define os dados
        Listas.Mapa[Selecionado].Azulejo = TempAzulejo2;
    }