param(
    [switch]$FullBuild = $False,
    [switch]$Pause = $False
)

$pboProject = (Get-ItemProperty "HKCU:\Software\Mikero\pboProject\").exe
$output = $(Join-Path $(Get-Location) "@501st Community Auxiliary Mod")
$mods = @("501st_Helmets","RD501_Compositions","RD501_Droids","RD501_Droid_Dispenser","RD501_EMP","RD501_Helmets","RD501_Jumppack","RD501_Main","RD501_Markers","RD501_Particle_Effects","RD501_RDS","RD501_Units","RD501_Vehicles","RD501_Vehicle_Weapons","RD501_Weapons","RD501_Zeus","VenMK2")

ForEach ($mod in $mods)
{
    $target = "$output\addons\$mod.pbo"
    $LastModified = (Get-ChildItem "addons\$mod" -File -Recurse | Sort-Object LastWriteTime | Select-Object -Last 1).LastWriteTime
    $exists = Test-Path $target
    if($exists){ $LastBuilt = (Get-ChildItem $target).LastWriteTime }
    if($exists -And -Not $FullBuild -And $LastBuilt -gt $LastModified)
    {
        Write-Verbose "$mod Up to Date, skipping."
    }
    else
    {
        Write-Output "==Building $mod=="
        $args = @()
        if(-Not $Pause){ $args += "-P" }
        $args += "-M=$output"
        $args += "P:\$mod"
        & "$pboProject" @args
        Wait-Process pboProject
        if(Test-Path $target)
        {
            Write-Output "  Successfully Built $mod."
        }
        else 
        {
            Write-Output "  $mod Build Failed."
            Write-Output $(Get-Content "P:\temp\$mod.packing.log")
        }
    }
}