126 lines
4.1 KiB
PowerShell
126 lines
4.1 KiB
PowerShell
|
$sourceDir = "."
|
||
|
$outputDir = ".\output"
|
||
|
|
||
|
if (-not (Test-Path $outputDir -PathType Container)) {
|
||
|
New-Item -ItemType Directory -Path $outputDir | Out-Null
|
||
|
}
|
||
|
|
||
|
Get-ChildItem -Path $outputDir -Include *.* -File -Recurse | foreach { $_.Delete()}
|
||
|
|
||
|
Get-ChildItem -Path "$sourceDir\*.png" | ForEach-Object {
|
||
|
$fileName = $_.BaseName
|
||
|
$destinationDir = $outputDir
|
||
|
|
||
|
if ($fileName -match "^[0-9]+fsb-?") {
|
||
|
$destinationDir = Join-Path $outputDir "back\shiny\female"
|
||
|
}
|
||
|
elseif ($fileName -match "^[0-9]+sb-?") {
|
||
|
$destinationDir = Join-Path $outputDir "back\shiny"
|
||
|
}
|
||
|
elseif ($fileName -match "^[0-9]+fb-?") {
|
||
|
$destinationDir = Join-Path $outputDir "back\female"
|
||
|
}
|
||
|
elseif ($fileName -match "^[0-9]+b-?") {
|
||
|
$destinationDir = Join-Path $outputDir "back"
|
||
|
}
|
||
|
elseif ($fileName -match "^[0-9]+fs-?") {
|
||
|
$destinationDir = Join-Path $outputDir "shiny\female"
|
||
|
}
|
||
|
elseif ($fileName -match "^[0-9]+s-?") {
|
||
|
$destinationDir = Join-Path $outputDir "shiny"
|
||
|
}
|
||
|
elseif ($fileName -match "^[0-9]+f-?") {
|
||
|
$destinationDir = Join-Path $outputDir "female"
|
||
|
}
|
||
|
|
||
|
if (-not (Test-Path $destinationDir -PathType Container)) {
|
||
|
New-Item -ItemType Directory -Path $destinationDir | Out-Null
|
||
|
}
|
||
|
|
||
|
Move-Item -Path $_.FullName -Destination $destinationDir
|
||
|
Write-Host "Moved: $($_.FullName) to $destinationDir"
|
||
|
}
|
||
|
|
||
|
$dirs = @(".\output\back\shiny\female", ".\output\back\shiny", ".\output\back\female", ".\output\back", ".\output\shiny\female", ".\output\shiny", ".\output\female")
|
||
|
|
||
|
foreach ($dir in $dirs) {
|
||
|
Get-ChildItem -Path $dir -Filter *.png | ForEach-Object {
|
||
|
$filename = $_.BaseName
|
||
|
$extension = $_.Extension
|
||
|
$newfilename = ""
|
||
|
|
||
|
$prefix, $suffix = $filename -split '-', 2
|
||
|
|
||
|
if ($suffix) {
|
||
|
$suffix = '-' + $suffix
|
||
|
}
|
||
|
|
||
|
$prefix = $prefix -replace 'b|s|sb|f|fb|fs|fsb'
|
||
|
|
||
|
$newfilename = "$prefix$suffix$extension"
|
||
|
|
||
|
if ($filename -ne $newfilename) {
|
||
|
Rename-Item $_.FullName -NewName $newfilename
|
||
|
Write-Host "Renamed: $($_.FullName) to $newfilename"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$env:PATH = "C:\Program Files\CodeAndWeb\TexturePacker\bin;$env:PATH"
|
||
|
|
||
|
$dirs = @(".\output", ".\output\back\shiny\female", ".\output\back\shiny", ".\output\back\female", ".\output\back", ".\output\shiny\female", ".\output\shiny", ".\output\female")
|
||
|
|
||
|
foreach ($dir in $dirs) {
|
||
|
Get-ChildItem $dir -Filter *.png | ForEach-Object {
|
||
|
$outputDir = Join-Path $_.Directory $_.BaseName
|
||
|
New-Item -ItemType Directory -Path $outputDir | Out-Null
|
||
|
ffmpeg -i $_.FullName "$outputDir\%04d.png"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$dirs = @(".\output", ".\output\back\shiny\female", ".\output\back\shiny", ".\output\back\female", ".\output\back", ".\output\shiny\female", ".\output\shiny", ".\output\female")
|
||
|
|
||
|
$configPath = "$(Get-Location)\configuration.tps"
|
||
|
|
||
|
foreach ($dir in $dirs) {
|
||
|
Get-ChildItem -Path $dir -Directory | Where-Object { $_.Name -match '^[0-9]+' } | ForEach-Object {
|
||
|
$name = $_.BaseName
|
||
|
|
||
|
Get-ChildItem -Path $_.FullName -Recurse -File | ForEach-Object {
|
||
|
$img = New-Object -ComObject Wia.ImageFile
|
||
|
echo $_.FullName
|
||
|
$img.LoadFile($_.FullName)
|
||
|
$height = $img.Height
|
||
|
$command = "magick.exe convert $($_.FullName) -crop $($height)x$($height) $($_.Directory)\%04d.png"
|
||
|
iex $command
|
||
|
$gifPath = "$($_.Directory)/$($name).gif"
|
||
|
$command = "ffmpeg -i $($_.Directory)\%04d.png $($gifPath)"
|
||
|
iex $command
|
||
|
|
||
|
Get-ChildItem $_.Directory -Filter *.png | ForEach-Object {
|
||
|
Remove-Item $_.FullName
|
||
|
}
|
||
|
|
||
|
magick.exe convert -layers trim-bounds $gifPath $gifPath
|
||
|
|
||
|
$command = "ffmpeg -i $($gifPath) $($_.Directory)\%04d.png"
|
||
|
iex $command
|
||
|
|
||
|
Remove-Item $gifPath
|
||
|
|
||
|
$command = "TexturePacker.exe $($configPath) --sheet $($dir)\$($name).png --data $($dir)\$($name).json $($dir)\$($name)"
|
||
|
iex $command
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$folders = Get-ChildItem -Path $dir -Directory
|
||
|
|
||
|
$foldersToKeep = @('back', 'shiny', 'female')
|
||
|
|
||
|
$foldersToDelete = $folders | Where-Object { $foldersToKeep -notcontains $_.Name }
|
||
|
|
||
|
foreach ($folder in $foldersToDelete) {
|
||
|
Remove-Item -Path $folder.FullName -Recurse -Force
|
||
|
Write-Host "Deleted folder: $($folder.FullName)"
|
||
|
}
|
||
|
}
|