param(
    [string]$Configuration = "Release",
    [string]$ModsDir = ""
)

$ErrorActionPreference = "Stop"

$projectPath = Join-Path $PSScriptRoot "__PROJECT_NAME__.csproj"
dotnet build $projectPath -c $Configuration /nr:false

if ($LASTEXITCODE -ne 0) {
    exit $LASTEXITCODE
}

$artifactDir = Join-Path $PSScriptRoot ("artifacts\" + $Configuration)
$dllPath = Join-Path $artifactDir "__PROJECT_NAME__.dll"

Write-Host "Build completed: $dllPath"

if ([string]::IsNullOrWhiteSpace($ModsDir)) {
    return
}

New-Item -ItemType Directory -Force -Path $ModsDir | Out-Null
Copy-Item -LiteralPath $dllPath -Destination (Join-Path $ModsDir "__PROJECT_NAME__.dll") -Force

$pdbPath = Join-Path $artifactDir "__PROJECT_NAME__.pdb"
if (Test-Path -LiteralPath $pdbPath) {
    Copy-Item -LiteralPath $pdbPath -Destination (Join-Path $ModsDir "__PROJECT_NAME__.pdb") -Force
}

Write-Host "Copied artifacts to: $ModsDir"
