sevenx_engine 0.2.11

Engine de jogos 2D/3D completa com suporte Android, física, áudio, partículas, tilemap, UI, eventos e sistema 3D avançado com PBR.
Documentation
# SevenX Engine - Configurador Automático Android
# Detecta automaticamente os caminhos do Android SDK e NDK

Write-Host ""
Write-Host "🤖 SevenX Engine - Configurador Android Automático" -ForegroundColor Cyan
Write-Host "====================================================" -ForegroundColor Cyan
Write-Host ""

# Detectar Android SDK automaticamente
Write-Host "🔍 Procurando Android SDK..." -ForegroundColor Yellow

$possiblePaths = @(
    "$env:LOCALAPPDATA\Android\Sdk",
    "$env:APPDATA\Android\Sdk",
    "$env:ProgramFiles\Android\Android Studio\sdk",
    "$env:ProgramFiles(x86)\Android\Android Studio\sdk",
    "C:\Android\Sdk"
)

$androidHome = $null
foreach ($path in $possiblePaths) {
    if (Test-Path $path) {
        $androidHome = $path
        Write-Host "   ✅ Android SDK encontrado em:" -ForegroundColor Green
        Write-Host "      $androidHome" -ForegroundColor Cyan
        break
    }
}

if (-not $androidHome) {
    Write-Host "   ❌ Android SDK não encontrado!" -ForegroundColor Red
    Write-Host ""
    Write-Host "   Por favor, informe o caminho manualmente:" -ForegroundColor Yellow
    Write-Host "   Exemplo: C:\Users\SeuUsuario\AppData\Local\Android\Sdk" -ForegroundColor Gray
    Write-Host ""
    $androidHome = Read-Host "   Caminho do Android SDK"
    
    if (-not (Test-Path $androidHome)) {
        Write-Host ""
        Write-Host "   ❌ Caminho inválido!" -ForegroundColor Red
        Write-Host "   Execute o script novamente com o caminho correto." -ForegroundColor Yellow
        exit 1
    }
}

# Procurar NDK
Write-Host ""
Write-Host "🔍 Procurando Android NDK..." -ForegroundColor Yellow

$ndkPath = Join-Path $androidHome "ndk"
$ndkHome = $null

if (Test-Path $ndkPath) {
    $ndkVersions = Get-ChildItem $ndkPath -Directory | Sort-Object Name -Descending
    
    if ($ndkVersions.Count -gt 0) {
        $ndkHome = $ndkVersions[0].FullName
        Write-Host "   ✅ NDK encontrado:" -ForegroundColor Green
        Write-Host "      $ndkHome" -ForegroundColor Cyan
        Write-Host "      Versão: $($ndkVersions[0].Name)" -ForegroundColor Cyan
    } else {
        Write-Host "   ❌ NDK não encontrado!" -ForegroundColor Red
        Write-Host ""
        Write-Host "   Instale o NDK via Android Studio:" -ForegroundColor Yellow
        Write-Host "   Tools → SDK Manager → SDK Tools → NDK (Side by side)" -ForegroundColor Yellow
        Write-Host ""
        $continue = Read-Host "   Continuar mesmo assim? (s/n)"
        if ($continue -ne "s") {
            exit 1
        }
    }
} else {
    Write-Host "   ⚠️  Pasta NDK não encontrada" -ForegroundColor Yellow
    Write-Host "   Instale o NDK via Android Studio" -ForegroundColor Yellow
}

# Configurar variáveis de ambiente
Write-Host ""
Write-Host "⚙️  Configurando variáveis de ambiente..." -ForegroundColor Yellow

try {
    # ANDROID_HOME
    [System.Environment]::SetEnvironmentVariable('ANDROID_HOME', $androidHome, 'User')
    Write-Host "   ✅ ANDROID_HOME configurado" -ForegroundColor Green
    
    # ANDROID_NDK_HOME
    if ($ndkHome) {
        [System.Environment]::SetEnvironmentVariable('ANDROID_NDK_HOME', $ndkHome, 'User')
        Write-Host "   ✅ ANDROID_NDK_HOME configurado" -ForegroundColor Green
    }
    
    # Adicionar ao PATH
    $currentPath = [System.Environment]::GetEnvironmentVariable('Path', 'User')
    $platformTools = Join-Path $androidHome "platform-tools"
    $tools = Join-Path $androidHome "tools"
    
    $pathsToAdd = @()
    
    if ($currentPath -notlike "*$platformTools*") {
        $pathsToAdd += $platformTools
    }
    
    if ($currentPath -notlike "*$tools*") {
        $pathsToAdd += $tools
    }
    
    if ($pathsToAdd.Count -gt 0) {
        $newPath = $currentPath
        foreach ($pathToAdd in $pathsToAdd) {
            if (Test-Path $pathToAdd) {
                $newPath = "$newPath;$pathToAdd"
            }
        }
        [System.Environment]::SetEnvironmentVariable('Path', $newPath, 'User')
        Write-Host "   ✅ PATH atualizado" -ForegroundColor Green
    } else {
        Write-Host "   ℹ️  PATH já configurado" -ForegroundColor Cyan
    }
    
    Write-Host ""
    Write-Host "✅ Configuração concluída!" -ForegroundColor Green
    
} catch {
    Write-Host ""
    Write-Host "❌ Erro ao configurar variáveis!" -ForegroundColor Red
    Write-Host "   Execute o PowerShell como Administrador" -ForegroundColor Yellow
    exit 1
}

# Resumo
Write-Host ""
Write-Host "====================================================" -ForegroundColor Cyan
Write-Host ""
Write-Host "📋 Resumo da Configuração:" -ForegroundColor Cyan
Write-Host ""
Write-Host "   ANDROID_HOME:" -ForegroundColor Yellow
Write-Host "   $androidHome" -ForegroundColor White
Write-Host ""

if ($ndkHome) {
    Write-Host "   ANDROID_NDK_HOME:" -ForegroundColor Yellow
    Write-Host "   $ndkHome" -ForegroundColor White
    Write-Host ""
}

Write-Host "⚠️  IMPORTANTE:" -ForegroundColor Yellow
Write-Host "   Feche e abra o PowerShell/CMD para as mudanças terem efeito!" -ForegroundColor Yellow
Write-Host ""

Write-Host "📝 Próximos passos:" -ForegroundColor Cyan
Write-Host "   1. Feche este terminal" -ForegroundColor White
Write-Host "   2. Abra um novo PowerShell" -ForegroundColor White
Write-Host "   3. Execute: cargo install cargo-apk" -ForegroundColor White
Write-Host "   4. Execute: rustup target add aarch64-linux-android" -ForegroundColor White
Write-Host "   5. Execute: .\verificar-setup.ps1" -ForegroundColor White
Write-Host ""

Write-Host "====================================================" -ForegroundColor Cyan
Write-Host ""