Files
joywayerandClaude Opus 4.8 7ab748919a chore: 纳入项目全部源码进根仓库统一管理
删除 YouleNexus 内嵌 .git,统一由根仓库唯一管理。提交:
- projects/ 旧 H5 模板 Game_Surface_3 与各子游戏源码
- cocoscreator_projects/YouleNexus 工程 + cocos-creator-mcp 扩展源码
- CLAUDE.md、.mcp.json 等配置
library/temp/node_modules/dist 等缓存由 .gitignore 排除。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 11:55:13 +08:00

99 lines
3.9 KiB
PowerShell

# Spine resource data generation script
# Scans assets/spine/ directory and generates:
# generated/spine_assets.js - resource name list
# generated/spine_data.js - .json/.atlas text content embedded (file:// CORS fix)
$ErrorActionPreference = "Stop"
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
$projectDir = Split-Path -Parent $scriptDir
$spineDir = Join-Path $projectDir "assets\spine"
$outDir = Join-Path $projectDir "generated"
$assetsOut = Join-Path $outDir "spine_assets.js"
$dataOut = Join-Path $outDir "spine_data.js"
if (-not (Test-Path $outDir)) {
New-Item -ItemType Directory -Path $outDir | Out-Null
}
if (-not (Test-Path $spineDir)) {
Write-Host "[WARN] Spine assets directory not found: $spineDir — generating empty files" -ForegroundColor Yellow
$jsonFiles = @()
} else {
$jsonFiles = Get-ChildItem $spineDir -Filter "*.json" | Sort-Object Name
}
if ($jsonFiles.Count -eq 0) {
Write-Host "[INFO] No .json files found — generating empty placeholder files" -ForegroundColor Yellow
$utf8NoBom = New-Object System.Text.UTF8Encoding($false)
[System.IO.File]::WriteAllText($assetsOut, "// Spine resource list (auto-generated, do not edit manually)`ngameabc_face.spineAssets = [];`n", $utf8NoBom)
[System.IO.File]::WriteAllText($dataOut, "// Spine text data (auto-generated, do not edit manually)`ngameabc_face.spineTextData = {};`n", $utf8NoBom)
Write-Host "[OK] $assetsOut (empty)" -ForegroundColor Green
Write-Host "[OK] $dataOut (empty)" -ForegroundColor Green
exit 0
}
$names = @()
foreach ($f in $jsonFiles) {
$names += $f.BaseName
}
Write-Host "Found $($names.Count) Spine resource(s): $($names -join ', ')" -ForegroundColor Cyan
# ==================== spine_assets.js ====================
$assetsSB = [System.Text.StringBuilder]::new()
[void]$assetsSB.AppendLine('// Spine resource list (auto-generated, do not edit manually)')
[void]$assetsSB.Append('gameabc_face.spineAssets = [')
for ($i = 0; $i -lt $names.Count; $i++) {
if ($i -gt 0) { [void]$assetsSB.Append(',') }
[void]$assetsSB.AppendLine('')
[void]$assetsSB.Append("`t`"$($names[$i])`"")
}
[void]$assetsSB.AppendLine('')
[void]$assetsSB.AppendLine('];')
$utf8NoBom = New-Object System.Text.UTF8Encoding($false)
[System.IO.File]::WriteAllText($assetsOut, $assetsSB.ToString(), $utf8NoBom)
Write-Host "[OK] $assetsOut" -ForegroundColor Green
# ==================== spine_data.js ====================
$dataSB = [System.Text.StringBuilder]::new()
[void]$dataSB.AppendLine('// Spine text data (auto-generated, do not edit manually)')
[void]$dataSB.AppendLine('// Embeds .json/.atlas content into JS to bypass file:// XHR CORS')
[void]$dataSB.AppendLine('gameabc_face.spineTextData = {};')
$totalOriginal = 0
foreach ($name in $names) {
foreach ($ext in '.json', '.atlas') {
$filePath = Join-Path $spineDir "$name$ext"
if (-not (Test-Path $filePath)) {
Write-Host "[WARN] Missing file: $name$ext" -ForegroundColor Yellow
continue
}
$raw = [System.IO.File]::ReadAllText($filePath, [System.Text.Encoding]::UTF8)
$totalOriginal += (Get-Item $filePath).Length
$escaped = $raw.Replace('\', '\\').Replace("'", "\'")
$escaped = $escaped.Replace("`r`n", '\n').Replace("`n", '\n').Replace("`r", '')
[void]$dataSB.AppendLine("gameabc_face.spineTextData['$name$ext'] = '$escaped';")
}
}
[System.IO.File]::WriteAllText($dataOut, $dataSB.ToString(), $utf8NoBom)
$dataSize = (Get-Item $dataOut).Length
$overhead = $dataSize - $totalOriginal
Write-Host "[OK] $dataOut" -ForegroundColor Green
Write-Host ''
Write-Host '=== Summary ===' -ForegroundColor Cyan
Write-Host " Resources: $($names.Count)"
Write-Host " Original size: $([math]::Round($totalOriginal/1024, 1)) KB"
Write-Host " Output size: $([math]::Round($dataSize/1024, 1)) KB (overhead: $overhead bytes)"