63 lines
2.6 KiB
JavaScript
63 lines
2.6 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.setTextureCompress = void 0;
|
|
const fs_1 = require("fs");
|
|
const path_1 = require("path");
|
|
const maxNum = 200;
|
|
const rgb = 'e1XaJRnl5Lz5c/u8AuDO6Q';
|
|
const rgba = 'e6sm5y64VBR6/bYxQLg7Ja';
|
|
function checkIsTexture(asset) {
|
|
if (asset.name.indexOf('.png') != -1 || asset.name.indexOf('.jpg') != -1 || asset.name.indexOf('.pac') != -1)
|
|
return true;
|
|
return false;
|
|
}
|
|
async function setTextureCompress() {
|
|
let files = [];
|
|
let loopDir = (dir) => {
|
|
let f = (0, fs_1.readdirSync)(dir);
|
|
f.forEach((_f) => {
|
|
let fp = (0, path_1.join)(dir, _f);
|
|
if ((0, fs_1.statSync)(fp).isDirectory())
|
|
loopDir(fp);
|
|
else if (checkIsTexture({ name: fp }) && fp.indexOf('.meta') != -1)
|
|
files.push(fp);
|
|
});
|
|
};
|
|
loopDir((0, path_1.join)(Editor.Project.path, 'assets/resources'));
|
|
return new Promise(resolve => {
|
|
let handle = () => {
|
|
if (files.length < 1)
|
|
return resolve(true);
|
|
let arr = files.filter((v, i) => i < maxNum);
|
|
files.splice(0, arr.length);
|
|
arr.forEach(async (filePath) => {
|
|
let uuid = JSON.parse((0, fs_1.readFileSync)(filePath).toString()).uuid;
|
|
let metaInfo = await Editor.Message.request('asset-db', 'query-asset-meta', uuid);
|
|
if (metaInfo) {
|
|
let setNum = 0;
|
|
let presetId = filePath.indexOf('jpg') != -1 ? rgb : rgba;
|
|
if (!metaInfo.userData.compressSettings) {
|
|
setNum++;
|
|
metaInfo.userData.compressSettings = {};
|
|
}
|
|
if (!metaInfo.userData.compressSettings.useCompressTexture) {
|
|
setNum++;
|
|
metaInfo.userData.compressSettings.useCompressTexture = true;
|
|
}
|
|
if (metaInfo.userData.compressSettings.presetId != presetId) {
|
|
setNum++;
|
|
metaInfo.userData.compressSettings.presetId = presetId;
|
|
}
|
|
if (setNum > 0) {
|
|
console.log('设置纹理压缩 ----> ' + filePath + ' ----> ' + presetId);
|
|
await Editor.Message.request('asset-db', 'save-asset-meta', uuid, JSON.stringify(metaInfo));
|
|
}
|
|
}
|
|
});
|
|
handle();
|
|
};
|
|
handle();
|
|
});
|
|
}
|
|
exports.setTextureCompress = setTextureCompress;
|