Complete Cocos Creator port with level bundles, themes, and tooling.
Adds level prefabs, theme assets, audio, extensions, and deployment scripts for the Unity WebGL migration. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
112
extensions/plugin-import-2x/dist/convertor/js.js
vendored
Normal file
112
extensions/plugin-import-2x/dist/convertor/js.js
vendored
Normal file
@@ -0,0 +1,112 @@
|
||||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.JSImporter = void 0;
|
||||
const base_1 = require("../common/base");
|
||||
const utlis_1 = require("../common/utlis");
|
||||
const parseCode_1 = require("../common/parseCode");
|
||||
class JSImporter extends base_1.ImporterBase {
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
this.type = 'script';
|
||||
}
|
||||
beforeImport(projectRoot, sourceFsPath) {
|
||||
const _super = Object.create(null, {
|
||||
beforeImport: { get: () => super.beforeImport }
|
||||
});
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const skip = utlis_1.SKIPS_SCRIPT.find(value => {
|
||||
return sourceFsPath.endsWith(value);
|
||||
});
|
||||
if (skip) {
|
||||
return false;
|
||||
}
|
||||
return yield _super.beforeImport.call(this, projectRoot, sourceFsPath);
|
||||
});
|
||||
}
|
||||
import(main) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
this._3dMeta.ver = '4.0.21';
|
||||
this._3dMeta.importer = 'javascript';
|
||||
let name = this.pathInfo.name;
|
||||
// 类名只保留字母
|
||||
name = utlis_1.scriptName.getValidClassName(name);
|
||||
const baseCode = this.readFileSync();
|
||||
if (baseCode) {
|
||||
let needParse = false;
|
||||
let commentCode = '';
|
||||
baseCode.trim().split('\n').forEach((line) => {
|
||||
commentCode += '// ' + line + `\n`;
|
||||
if (line.includes('cc.Class(')) {
|
||||
needParse = true;
|
||||
}
|
||||
});
|
||||
let code = '';
|
||||
if (this._2dMeta && this._2dMeta.isPlugin) {
|
||||
this._3dMeta.userData = {
|
||||
isPlugin: this._2dMeta.isPlugin,
|
||||
loadPluginInWeb: this._2dMeta.loadPluginInWeb,
|
||||
loadPluginInNative: this._2dMeta.loadPluginInNative,
|
||||
loadPluginInEditor: this._2dMeta.loadPluginInEditor,
|
||||
importAsPlugin: this._2dMeta.isPlugin,
|
||||
};
|
||||
}
|
||||
else {
|
||||
if (needParse) {
|
||||
const data = yield (0, parseCode_1.parseJSCode)(this.sourceFsPath, name);
|
||||
code += data.topNote;
|
||||
if (baseCode.includes('cc.Class(')) {
|
||||
const classInfo = yield this.queryCCClass(main.$.engine2D, {
|
||||
type: 'js',
|
||||
path: this.destFsPath,
|
||||
name: name,
|
||||
code: baseCode,
|
||||
classCount: 1,
|
||||
ccKeys: data.ccKeys,
|
||||
importCodeMap: data.importCodeMap,
|
||||
otherCodeMap: data.otherCodeMap,
|
||||
classCodeMap: data.classCodeMap,
|
||||
endCodeMap: data.endCodeMap,
|
||||
replaceScriptList: utlis_1.replaceScriptList,
|
||||
});
|
||||
if (classInfo) {
|
||||
if (name !== classInfo.name) {
|
||||
console.warn(Editor.I18n.t('plugin-import-2x.script_rename_tips', {
|
||||
old: name,
|
||||
new: classInfo.name
|
||||
}));
|
||||
}
|
||||
(0, utlis_1.updateReplaceScriptList)(classInfo.replaceScriptList);
|
||||
code += classInfo.classCode;
|
||||
}
|
||||
}
|
||||
else {
|
||||
console.warn(Editor.I18n.t('plugin-import-2x.skip_script_warn', {
|
||||
name: this.pathInfo.name,
|
||||
}));
|
||||
}
|
||||
code += `/**\n`;
|
||||
code += ` * ${Editor.I18n.t('plugin-import-2x.plugin_js_tips')}\n`;
|
||||
code += ` */\n`;
|
||||
code += commentCode;
|
||||
this._2dTo3dSource = code;
|
||||
}
|
||||
else {
|
||||
this._2dTo3dSource = baseCode;
|
||||
}
|
||||
utlis_1.scriptList.set(this.pathInfo.name, this.destFsPath);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.JSImporter = JSImporter;
|
||||
Reference in New Issue
Block a user