diff --git a/packages/scripts/src/buildAssets/constants.ts b/packages/scripts/src/buildAssets/constants.ts index d1ab4aff3..49a20d378 100644 --- a/packages/scripts/src/buildAssets/constants.ts +++ b/packages/scripts/src/buildAssets/constants.ts @@ -5,11 +5,15 @@ const WINDOWS_APPS = 'C:/Program Files/WindowsApps'; const wotbPackageRegex = /7458BE2C\..+_\d+(\.\d+)+_x64__.+/; const isDepot = argv.includes('--depot'); +const isManual = argv.includes('--manual'); let data: string; let compressed: boolean; -if (isDepot) { +if (isManual) { + data = '../../temp/game/Data'; + compressed = true; +} else if (isDepot) { const [installationVersion] = await readdir(`../../depots/444202`); data = `../../depots/444202/${installationVersion}/Data`; compressed = true; diff --git a/packages/scripts/src/buildAssets/tankModels.ts b/packages/scripts/src/buildAssets/tankModels.ts index 112889086..b7ec2057a 100644 --- a/packages/scripts/src/buildAssets/tankModels.ts +++ b/packages/scripts/src/buildAssets/tankModels.ts @@ -28,26 +28,24 @@ export async function tankModels() { console.log(`Building models for ${nation}`); - await Promise.all( - Object.entries(tanks.root).map(async ([tankKey, tank]) => { - if (tankKey.includes('tutorial_bot')) return; + for (const [tankKey, tank] of Object.entries(tanks.root)) { + if (tankKey.includes('tutorial_bot')) return; - const id = toUniqueId(nation, tank.id); + const id = toUniqueId(nation, tank.id); - const parameters = await readYAMLDVPL( - `${DATA}/3d/Tanks/Parameters/${nation}/${tankKey}.yaml`, - ); - const model = await extractModel( - DATA, - parameters.resourcesPath.blitzModelPath.replace(/\.sc2$/, ''), - ); + const parameters = await readYAMLDVPL( + `${DATA}/3d/Tanks/Parameters/${nation}/${tankKey}.yaml`, + ); + const model = await extractModel( + DATA, + parameters.resourcesPath.blitzModelPath.replace(/\.sc2$/, ''), + ); - changes.push({ - path: `3d/tanks/models/${id}.glb`, - content: Buffer.from(await nodeIO.writeBinary(model)), - }); - }), - ); + changes.push({ + path: `3d/tanks/models/${id}.glb`, + content: Buffer.from(await nodeIO.writeBinary(model)), + }); + } await commitAssets(`tank models ${nation}`, changes); } diff --git a/packages/scripts/src/core/blitz/readDVPL.ts b/packages/scripts/src/core/blitz/readDVPL.ts index 6fb5d0845..a7dea2f2e 100644 --- a/packages/scripts/src/core/blitz/readDVPL.ts +++ b/packages/scripts/src/core/blitz/readDVPL.ts @@ -46,13 +46,13 @@ export function readDVPL(buffer: Buffer) { source.length, 0, ); - + if (decompressedSize !== footerData.oSize) { throw new RangeError( `Decompressed DVPL size mismatch (${decompressedSize} vs ${footerData.oSize})`, ); } - + return Buffer.from(destination); } else { throw new SyntaxError('Unknown DVPL format'); diff --git a/packages/scripts/src/core/blitz/readDVPLFile.ts b/packages/scripts/src/core/blitz/readDVPLFile.ts index bf62d8d8c..49c6f4f82 100644 --- a/packages/scripts/src/core/blitz/readDVPLFile.ts +++ b/packages/scripts/src/core/blitz/readDVPLFile.ts @@ -1,11 +1,10 @@ import { readFile } from 'fs/promises'; -import { DATA_COMPRESSED } from '../../buildAssets/constants'; import { readDVPL } from './readDVPL'; export async function readDVPLFile(file: string) { - if (DATA_COMPRESSED && !file.endsWith('.dvpl')) { - return readDVPL(await readFile(`${file}.dvpl`)); - } + const path = `${file}${file.endsWith('.dvpl') ? '' : '.dvpl'}`; + const content = await readFile(path); + const dvpl = readDVPL(content); - return readFile(file); + return dvpl; } diff --git a/packages/scripts/src/core/blitz/readTexture/index.ts b/packages/scripts/src/core/blitz/readTexture/index.ts index b20d4b461..1a06f6582 100644 --- a/packages/scripts/src/core/blitz/readTexture/index.ts +++ b/packages/scripts/src/core/blitz/readTexture/index.ts @@ -10,7 +10,7 @@ export async function readTexture(path: string, mutation?: TextureMutation) { const resolvedTexturePath = isDds ? ddsTexturePath : ddsTexturePath.replace('.dds', '.pvr'); - const decompressedDvpl = await readDVPLFile(resolvedTexturePath); + const decompressedDvpl = await readDVPLFile(`${resolvedTexturePath}.dvpl`); const raw = isDds ? await new DdsReadStream(decompressedDvpl.buffer as ArrayBuffer).dds() @@ -75,4 +75,5 @@ export async function readTexture(path: string, mutation?: TextureMutation) { default: return await sharp(raw.data, { raw }).jpeg().toBuffer(); } + }