You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.1 KiB
113 lines
3.1 KiB
|
1 week ago
|
const I18n = require('./i18n');
|
||
|
|
const PackageUtil = require('./package-util');
|
||
|
|
const Updater = require('./updater');
|
||
|
|
|
||
|
|
/** 编辑器语言 */
|
||
|
|
const LANG = Editor.lang || Editor.I18n.getLanguage();
|
||
|
|
|
||
|
|
/** 包名 */
|
||
|
|
const PACKAGE_NAME = PackageUtil.name;
|
||
|
|
|
||
|
|
/** 扩展名称 */
|
||
|
|
const EXTENSION_NAME = I18n.translate(LANG, 'name');
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 编辑器主进程工具 (依赖 Cocos Creator 编辑器)
|
||
|
|
* @author 陈皮皮 (ifaswind)
|
||
|
|
* @version 20210910
|
||
|
|
*/
|
||
|
|
const EditorMainUtil = {
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 语言
|
||
|
|
*/
|
||
|
|
get language() {
|
||
|
|
return LANG;
|
||
|
|
},
|
||
|
|
|
||
|
|
/**
|
||
|
|
* i18n
|
||
|
|
* @param {string} key 关键词
|
||
|
|
* @returns {string}
|
||
|
|
*/
|
||
|
|
translate(key) {
|
||
|
|
return I18n.translate(LANG, key);
|
||
|
|
},
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 打印信息到控制台
|
||
|
|
* @param {'log' | 'info' | 'warn' | 'error' | any} type
|
||
|
|
* @param {any[]?} args
|
||
|
|
*/
|
||
|
|
print(type) {
|
||
|
|
const args = [`[${EXTENSION_NAME}]`];
|
||
|
|
for (let i = 1, l = arguments.length; i < l; i++) {
|
||
|
|
args.push(arguments[i]);
|
||
|
|
}
|
||
|
|
const object = Editor.log ? Editor : console;
|
||
|
|
switch (type) {
|
||
|
|
case 'log': {
|
||
|
|
object.log.apply(object, args);
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
case 'info': {
|
||
|
|
object.info.apply(object, args);
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
case 'warn': {
|
||
|
|
object.warn.apply(object, args);
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
case 'error': {
|
||
|
|
object.error.apply(object, args);
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
default: {
|
||
|
|
args.splice(1, 0, type);
|
||
|
|
object.log.apply(object, args);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 检查更新
|
||
|
|
* @param {boolean} logWhatever 无论有无更新都打印提示
|
||
|
|
*/
|
||
|
|
async checkUpdate(logWhatever) {
|
||
|
|
// 编辑器本次启动是否已经检查过了
|
||
|
|
if (!logWhatever && (Editor[PACKAGE_NAME] && Editor[PACKAGE_NAME].hasCheckUpdate)) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
Editor[PACKAGE_NAME] = { hasCheckUpdate: true };
|
||
|
|
// 是否有新版本
|
||
|
|
const hasNewVersion = await Updater.check();
|
||
|
|
// 打印到控制台
|
||
|
|
const { print, translate } = EditorMainUtil;
|
||
|
|
const localVersion = Updater.getLocalVersion();
|
||
|
|
if (hasNewVersion) {
|
||
|
|
const remoteVersion = await Updater.getRemoteVersion();
|
||
|
|
print('info', translate('hasNewVersion'));
|
||
|
|
print('info', `${translate('localVersion')}${localVersion}`);
|
||
|
|
print('info', `${translate('latestVersion')}${remoteVersion}`);
|
||
|
|
print('info', translate('releases'));
|
||
|
|
print('info', translate('cocosStore'));
|
||
|
|
} else if (logWhatever) {
|
||
|
|
print('info', translate('currentLatest'));
|
||
|
|
print('info', `${translate('localVersion')}${localVersion}`);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
/**
|
||
|
|
* (3.x)重新加载扩展
|
||
|
|
*/
|
||
|
|
async reload() {
|
||
|
|
const path = await Editor.Package.getPath(PACKAGE_NAME);
|
||
|
|
await Editor.Package.unregister(path);
|
||
|
|
await Editor.Package.register(path);
|
||
|
|
await Editor.Package.enable(path);
|
||
|
|
},
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
module.exports = EditorMainUtil;
|