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.
98 lines
11 KiB
98 lines
11 KiB
|
2 weeks ago
|
"use strict";
|
||
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||
|
|
};
|
||
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
|
const fs_extra_1 = require("fs-extra");
|
||
|
|
const path_1 = require("path");
|
||
|
|
const vue_1 = require("vue");
|
||
|
|
const preview_1 = __importDefault(require("../default/methods/preview"));
|
||
|
|
/**
|
||
|
|
* 独立预览面板:完全复用 default 的 preview.ts 渲染逻辑(视口/外壳/缩放/静音一致)。
|
||
|
|
* 游戏 DOM 构建到顶层 document 的 #yyka-game-host;default 与预览面板各自独立引擎。
|
||
|
|
*/
|
||
|
|
const rootComponent = (0, vue_1.defineComponent)({
|
||
|
|
data() {
|
||
|
|
return {
|
||
|
|
// —— 面板级占位(preview.ts 方法依赖的非预览字段)——
|
||
|
|
treeWidth: 260,
|
||
|
|
detailWidth: 340,
|
||
|
|
showPerf: false,
|
||
|
|
drag: null,
|
||
|
|
logs: [],
|
||
|
|
previewUrl: 'http://localhost:7456/',
|
||
|
|
previewLoaded: false,
|
||
|
|
previewRenderErr: '',
|
||
|
|
previewOnline: null,
|
||
|
|
previewChecking: false,
|
||
|
|
previewCheckAt: 0,
|
||
|
|
previewDevice: 'Default',
|
||
|
|
previewRotated: false,
|
||
|
|
previewFps: 60,
|
||
|
|
previewShowFps: false,
|
||
|
|
previewPaused: false,
|
||
|
|
previewMuted: false,
|
||
|
|
previewZoom: 1,
|
||
|
|
showPreview: true,
|
||
|
|
_renderSeq: 0,
|
||
|
|
_hostSyncTimer: 0,
|
||
|
|
_hostObserved: false,
|
||
|
|
_docZoomBound: false,
|
||
|
|
_previewCheckTimer: 0,
|
||
|
|
_consoleDedup: new Map(),
|
||
|
|
};
|
||
|
|
},
|
||
|
|
methods: Object.assign({}, preview_1.default),
|
||
|
|
mounted() {
|
||
|
|
// 必须先安装音频 hook(在引擎脚本加载前),静音才能覆盖所有播放路径
|
||
|
|
try {
|
||
|
|
this._hookAudioCtx();
|
||
|
|
}
|
||
|
|
catch (_) { /* ignore */ }
|
||
|
|
this.initPreviewInfo().then(() => this.renderPreview());
|
||
|
|
this._checkTimer = window.setInterval(() => this.checkPreview(), 3000);
|
||
|
|
},
|
||
|
|
beforeUnmount() {
|
||
|
|
if (this._checkTimer)
|
||
|
|
window.clearInterval(this._checkTimer);
|
||
|
|
this.stopHostSync();
|
||
|
|
this.teardownPreview();
|
||
|
|
try {
|
||
|
|
const host = document.getElementById('yyka-game-host');
|
||
|
|
if (host)
|
||
|
|
host.remove();
|
||
|
|
}
|
||
|
|
catch (_) { /* ignore */ }
|
||
|
|
try {
|
||
|
|
document.querySelectorAll('.preview-panel-root').forEach((el) => el.remove());
|
||
|
|
}
|
||
|
|
catch (_) { /* ignore */ }
|
||
|
|
},
|
||
|
|
template: (0, fs_extra_1.readFileSync)((0, path_1.join)(__dirname, '../../../static/template/preview/index.html'), 'utf-8'),
|
||
|
|
});
|
||
|
|
const panelDataMap = new WeakMap();
|
||
|
|
module.exports = Editor.Panel.define({
|
||
|
|
listeners: {},
|
||
|
|
template: (0, fs_extra_1.readFileSync)((0, path_1.join)(__dirname, '../../../static/template/preview/wrapper.html'), 'utf-8'),
|
||
|
|
style: (0, fs_extra_1.readFileSync)((0, path_1.join)(__dirname, '../../../static/style/preview/index.css'), 'utf-8'),
|
||
|
|
$: {
|
||
|
|
app: '#app',
|
||
|
|
},
|
||
|
|
methods: {},
|
||
|
|
ready() {
|
||
|
|
if (this.$.app) {
|
||
|
|
const app = (0, vue_1.createApp)(rootComponent);
|
||
|
|
app.config.compilerOptions.isCustomElement = (tag) => tag.startsWith('ui-');
|
||
|
|
app.mount(this.$.app);
|
||
|
|
panelDataMap.set(this, app);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
beforeClose() { },
|
||
|
|
close() {
|
||
|
|
const app = panelDataMap.get(this);
|
||
|
|
if (app) {
|
||
|
|
app.unmount();
|
||
|
|
}
|
||
|
|
},
|
||
|
|
});
|
||
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zb3VyY2UvcGFuZWxzL3ByZXZpZXcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx1Q0FBd0M7QUFDeEMsK0JBQTRCO0FBQzVCLDZCQUFzRDtBQUV0RCx5RUFBd0Q7QUFFeEQ7OztHQUdHO0FBRUgsTUFBTSxhQUFhLEdBQUcsSUFBQSxxQkFBZSxFQUFDO0lBQ2xDLElBQUk7UUFDQSxPQUFPO1lBQ0gsb0NBQW9DO1lBQ3BDLFNBQVMsRUFBRSxHQUFHO1lBQ2QsV0FBVyxFQUFFLEdBQUc7WUFDaEIsUUFBUSxFQUFFLEtBQUs7WUFDZixJQUFJLEVBQUUsSUFBVztZQUNqQixJQUFJLEVBQUUsRUFBVztZQUNqQixVQUFVLEVBQUUsd0JBQXdCO1lBQ3BDLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLGdCQUFnQixFQUFFLEVBQUU7WUFDcEIsYUFBYSxFQUFFLElBQXNCO1lBQ3JDLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLGFBQWEsRUFBRSxTQUFTO1lBQ3hCLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLFVBQVUsRUFBRSxFQUFFO1lBQ2QsY0FBYyxFQUFFLEtBQUs7WUFDckIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsV0FBVyxFQUFFLENBQUM7WUFDZCxXQUFXLEVBQUUsSUFBSTtZQUNqQixVQUFVLEVBQUUsQ0FBQztZQUNiLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLGtCQUFrQixFQUFFLENBQUM7WUFDckIsYUFBYSxFQUFFLElBQUksR0FBRyxFQUFFO1NBQzNCLENBQUM7SUFDTixDQUFDO0lBQ0QsT0FBTyxvQkFDQSxpQkFBYyxDQUNwQjtJQUNELE9BQU87UUFDSCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDO1lBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQUMsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUNELGFBQWE7UUFDVCxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUM7WUFDRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDdkQsSUFBSSxJQUFJO2dCQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1QixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQztZQUNELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEYsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsUUFBUSxFQUFFLElBQUEsdUJBQVksRUFBQyxJQUFBLFdBQUksRUFBQyxTQUFTLEVBQUUsNkNBQTZDLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDbEcsQ0FBQyxDQUFDO0FBRUgsTUFBTSxZQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVksQ0FBQztBQUU3QyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ2pDLFNBQVMsRUFBRSxFQUFFO0lBQ2IsUUFBUSxFQUFFLElBQUEsdUJBQVksRUFBQyxJQUFBLFdBQUksRUFBQyxTQUFTLEVBQUUsK0NBQStDLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDakcsS0FBSyxFQUFFLElBQUEsdUJBQVksRUFBQyxJQUFBLFdBQUksRUFBQyxTQUFTLEVBQUUseUNBQXlDLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDeEYsQ0FBQyxFQUFFO1FBQ0MsR0FBRyxFQUFFLE1BQU07S0FDZDtJQUNELE9BQU8sRUFBRSxFQUFFO0lBQ1gsS0FBSztRQUNELElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNiLE1BQU0sR0FBRyxHQUFHLElBQUEsZUFBUyxFQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3JDLEdBQUcsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLGVBQWUsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRixHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXLEtBQUksQ0FBQztJQUNoQixLQUFLO1FBQ0QsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ04sR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDTCxDQUFDO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgY3JlYXRlQXBwLCBBcHAsIGRlZmluZUNvbXBvbmVudCB9IGZyb20gJ3Z1ZSc7XG5cbmltcG9ydCBwcmV2aWV3TWV0aG9kcyBmcm9tICcuLi9kZWZhdWx0L21ldGhvZHMvcHJldmlldyc7XG5cbi8qKlxuICog54us56uL6aKE6KeI6Z2i5p2/77ya5a6M5YWo5aSN55SoIGRlZmF1bHQg55qEIHByZXZpZXcudHMg5riy5p+T6YC76L6R77yI6KeG5Y+jL+WkluWjsy/nvKnmlL4v6Z2Z6Z+z5LiA6Ie077yJ44CCXG4gKiDmuLjmiI8gRE9NIOaehOW7uuWIsOmhtuWxgiBkb2N1bWVudCDnmoQgI3l5a2EtZ2FtZ
|