Files
youle_cocos/out/room-platform-refactor/extract-shared-view.mjs
T
joywayer 35216f75e7 feat: integrate room framework and isolated subgame bundles
Complete room UI and protocol integration, move game definitions and resources behind bundle entries, publish authoritative version XML, and document single-game builds. Include all current resource changes and experiment artifacts.
2026-09-09 03:13:18 +08:00

18 lines
2.1 KiB
JavaScript

import {readFileSync,writeFileSync} from 'node:fs';
const b='G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/';
const old=b+'games/template/TemplateRoomView.ts';
let src=readFileSync(old,'utf8').replace("import type {TemplateRoomActions,TemplateRoomPresentation} from './template-game.ts';","import type {RoomPresentationActions,RoomPresentation} from '../../framework/sdk/contracts/game-definition.ts';").replaceAll('TemplateRoomActions','RoomPresentationActions').replaceAll('TemplateRoomPresentation','RoomPresentation').replaceAll('TemplateRoomView','CommonRoomViewBase');
writeFileSync(b+'scripts/platform-login/CommonRoomViewBase.ts',src);
writeFileSync(old,"import {_decorator} from 'cc';\nimport {CommonRoomViewBase} from '../../scripts/platform-login/CommonRoomViewBase.ts';\nconst {ccclass}=_decorator;\n@ccclass('TemplateRoomView')\nexport class TemplateRoomView extends CommonRoomViewBase {}\n");
const eq=b+'games/erqiwang/ErqiwangRoomView.ts';
writeFileSync(eq,readFileSync(eq,'utf8').replace("import {TemplateRoomView} from '../template/TemplateRoomView.ts';","import {CommonRoomViewBase} from '../../scripts/platform-login/CommonRoomViewBase.ts';").replace("import type {TemplateRoomActions} from '../template/template-game.ts';","import type {RoomPresentationActions} from '../../framework/sdk/contracts/game-definition.ts';").replaceAll('extends TemplateRoomView','extends CommonRoomViewBase').replaceAll('TemplateRoomActions','RoomPresentationActions'));
const exit=b+'framework/presentation/room-exit-action.ts';
writeFileSync(b+'framework/sdk/room-exit-action.ts',readFileSync(exit,'utf8').replace('../sdk/contracts/','./contracts/'));
writeFileSync(exit,"export {roomExitAction} from '../sdk/room-exit-action.ts';\n");
for(const game of ['erqiwang','template']){
const f=b+'games/'+game+'/'+game+'-game.ts';
writeFileSync(f,readFileSync(f,'utf8').replace('framework/presentation/room-exit-action','framework/sdk/room-exit-action'));
const chat=b+'games/'+game+'/room-chat-config.ts';
writeFileSync(chat,readFileSync(chat,'utf8').replace('framework/presentation/room-chat-config','framework/sdk/contracts/room-chat'));
}