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.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,30 @@
|
||||
[
|
||||
{
|
||||
"Path": "G:\\Works\\YouleGamesCocosCreator\\cocoscreator_projects\\YouleNexus\\assets\\games\\template.meta",
|
||||
"Change": "modified"
|
||||
},
|
||||
{
|
||||
"Path": "G:\\Works\\YouleGamesCocosCreator\\cocoscreator_projects\\YouleNexus\\assets\\games\\template\\resources.meta",
|
||||
"Change": "modified"
|
||||
},
|
||||
{
|
||||
"Path": "G:\\Works\\YouleGamesCocosCreator\\cocoscreator_projects\\YouleNexus\\assets\\games\\erqiwang.meta",
|
||||
"Change": "modified"
|
||||
},
|
||||
{
|
||||
"Path": "G:\\Works\\YouleGamesCocosCreator\\cocoscreator_projects\\YouleNexus\\assets\\games\\erqiwang\\resources.meta",
|
||||
"Change": "modified"
|
||||
},
|
||||
{
|
||||
"Path": "G:\\Works\\YouleGamesCocosCreator\\cocoscreator_projects\\YouleNexus\\assets\\scenes\\PlatformStartup.scene",
|
||||
"Change": "modified"
|
||||
},
|
||||
{
|
||||
"Path": "G:\\Works\\YouleGamesCocosCreator\\cocoscreator_projects\\YouleNexus\\assets\\framework\\ui\\prefabs\\widgets\\Layer27_CreateRoom.prefab.meta",
|
||||
"Change": "moved/deleted"
|
||||
},
|
||||
{
|
||||
"Path": "G:\\Works\\YouleGamesCocosCreator\\cocoscreator_projects\\YouleNexus\\assets\\framework\\ui\\prefabs\\widgets\\Layer27_CreateRoom.prefab",
|
||||
"Change": "moved/deleted"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,20 @@
|
||||
const fs=require('fs'),path=require('path'),assert=require('node:assert/strict');
|
||||
const project=path.resolve(__dirname,'../../cocoscreator_projects/YouleNexus');
|
||||
const output=path.join(project,'build/web-mobile-subgame-decoupled-final');
|
||||
const settings=JSON.parse(fs.readFileSync(path.join(output,'src/settings.json'),'utf8'));
|
||||
const expected=['game-erqiwang','internal','main','resources','version-erqiwang'];
|
||||
assert.deepEqual([...settings.assets.projectBundles].sort(),expected);
|
||||
assert.deepEqual(fs.readdirSync(path.join(output,'assets')).sort(),expected);
|
||||
const walk=dir=>fs.readdirSync(dir,{withFileTypes:true}).flatMap(e=>e.isDirectory()?walk(path.join(dir,e.name)):[path.join(dir,e.name)]);
|
||||
const files=walk(output).filter(f=>/\.(js|json|txt)$/.test(f));
|
||||
const text=files.map(f=>fs.readFileSync(f,'utf8')).join('\n');
|
||||
for(const marker of ['createTemplateGame','TemplateCreateRoomView','TemplateRoomView','GameEntry_Game_Surface_3'])assert(!text.includes(marker),marker+' leaked');
|
||||
const uuids=walk(path.join(project,'assets/games/template')).filter(f=>f.endsWith('.meta')).map(f=>JSON.parse(fs.readFileSync(f,'utf8')).uuid);
|
||||
for(const uuid of uuids)assert(!text.includes(uuid),'template resource UUID leaked: '+uuid);
|
||||
assert(text.includes('GameEntry_erqiwang'));
|
||||
assert(fs.readFileSync(path.join(output,'version.xml')).equals(fs.readFileSync(path.join(project,'assets/games/erqiwang/resources/erqiwang/version.xml'))));
|
||||
const version=JSON.parse(fs.readFileSync(path.join(output,'assets/version-erqiwang/config.json'),'utf8'));
|
||||
assert(Object.values(version.paths).some(v=>v[0]==='erqiwang/version'));
|
||||
const result={output,bundles:settings.assets.projectBundles,templateUuidCount:uuids.length,templateCodeAbsent:true,versionXmlExact:true};
|
||||
fs.writeFileSync(path.join(__dirname,'build-audit.json'),JSON.stringify(result,null,2));
|
||||
console.log(JSON.stringify(result,null,2));
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"output": "G:\\Works\\YouleGamesCocosCreator\\cocoscreator_projects\\YouleNexus\\build\\web-mobile-subgame-decoupled-final",
|
||||
"bundles": [
|
||||
"internal",
|
||||
"resources",
|
||||
"main",
|
||||
"version-erqiwang",
|
||||
"game-erqiwang"
|
||||
],
|
||||
"templateUuidCount": 13,
|
||||
"templateCodeAbsent": true,
|
||||
"versionXmlExact": true
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,238 @@
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/adapters/native/owned-room-history.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/config/bootstrap.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/config/runtime-config.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/config/sources/defaults.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/net/wire-client.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/platform/commands.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/platform/game-host-adapter.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/platform/runtime-session.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/platform/runtime.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/platform/scene-port.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/platform/stores/platform-store.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/platform/stores/platform-types.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/protocol/contracts/room-contracts.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/protocol/contracts/validation.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/protocol/contracts/vip-room.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/protocol/first-slice-routes.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/protocol/platform-handlers.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/sdk/contracts/game-host.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/sdk/contracts/game-module.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/sdk/contracts/index.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/sdk/contracts/platform-events.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/sdk/contracts/roomtype.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/sdk/runtime/game-session-host.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/ui/atlas-common/00239.png.meta
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/ui/atlas-hall/00001.png
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/ui/atlas-hall/00001.png.meta
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer402_GameNotice.prefab
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer405_MainButton.prefab
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer413_BtnPanel.prefab
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer418_ChatPannel.prefab
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer420_CheckFree.prefab
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer50_MainScene.prefab
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer602_inputPannel.prefab
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer606_Apply.prefab
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer607_Cal.prefab
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer612_Tips.prefab
|
||||
M cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/MainMenu.prefab
|
||||
M cocoscreator_projects/YouleNexus/assets/games/erqiwang/ErqiwangCreateRoom.prefab
|
||||
M cocoscreator_projects/YouleNexus/assets/games/erqiwang/ErqiwangCreateRoomView.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/games/erqiwang/ErqiwangRoomView.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/games/erqiwang/erqiwang-game.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/games/erqiwang/erqiwang-room-rules.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/games/template/TemplateCreateRoomView.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/games/template/TemplateRoomView.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/games/template/template-game.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/games/template/template-room-rules.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/scenes/PlatformStartup.scene
|
||||
M cocoscreator_projects/YouleNexus/assets/scenes/TemplateRoom.scene
|
||||
M cocoscreator_projects/YouleNexus/assets/scripts/LoginFlow.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/scripts/platform-login/JoinRoomView.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/scripts/platform-login/PlatformStartup.ts
|
||||
D cocoscreator_projects/YouleNexus/assets/scripts/platform-login/SubgameAssets.ts
|
||||
D cocoscreator_projects/YouleNexus/assets/scripts/platform-login/SubgameAssets.ts.meta
|
||||
M cocoscreator_projects/YouleNexus/assets/scripts/platform-login/feedback-panels.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/scripts/platform-login/lobby-panel.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/scripts/platform-login/login-panel.ts
|
||||
M cocoscreator_projects/YouleNexus/assets/scripts/platform-login/scene-flow.ts
|
||||
M cocoscreator_projects/YouleNexus/out/legacy-migration/BackHall_Layer.prefab
|
||||
M cocoscreator_projects/YouleNexus/out/legacy-migration/Protol_Layer.prefab
|
||||
M cocoscreator_projects/YouleNexus/settings/v2/packages/builder.json
|
||||
M cocoscreator_projects/YouleNexus/settings/v2/packages/information.json
|
||||
M cocoscreator_projects/framework-tests/adapters/local/login-sources.test.ts
|
||||
M cocoscreator_projects/framework-tests/adapters/local/visitor-account.test.ts
|
||||
M cocoscreator_projects/framework-tests/adapters/owned-room-history.test.ts
|
||||
M cocoscreator_projects/framework-tests/architecture/import-boundaries.test.mjs
|
||||
M cocoscreator_projects/framework-tests/config/bootstrap.test.ts
|
||||
M cocoscreator_projects/framework-tests/config/identity.test.ts
|
||||
M cocoscreator_projects/framework-tests/config/launch-wait-time.test.ts
|
||||
M cocoscreator_projects/framework-tests/config/local-startup.test.ts
|
||||
M cocoscreator_projects/framework-tests/config/remote-config-fetcher.test.ts
|
||||
M cocoscreator_projects/framework-tests/config/runtime-config.test.ts
|
||||
M cocoscreator_projects/framework-tests/fixtures/remote-config.ts
|
||||
M cocoscreator_projects/framework-tests/integration/local-login-sources.test.ts
|
||||
M cocoscreator_projects/framework-tests/integration/platform-vertical-slice.test.ts
|
||||
M cocoscreator_projects/framework-tests/legacy-layer-migration/layer418-prefab.test.mjs
|
||||
M cocoscreator_projects/framework-tests/net/wire-client.test.ts
|
||||
M cocoscreator_projects/framework-tests/platform-login/game-entry.test.ts
|
||||
M cocoscreator_projects/framework-tests/platform-login/login-policy.test.ts
|
||||
M cocoscreator_projects/framework-tests/platform/commands.test.ts
|
||||
M cocoscreator_projects/framework-tests/platform/game-host-adapter.test.ts
|
||||
M cocoscreator_projects/framework-tests/platform/platform-store.test.ts
|
||||
M cocoscreator_projects/framework-tests/platform/runtime-session.test.ts
|
||||
M cocoscreator_projects/framework-tests/platform/runtime.test.ts
|
||||
M cocoscreator_projects/framework-tests/presentation/erqiwang-room-entry.test.ts
|
||||
M cocoscreator_projects/framework-tests/presentation/template-game.test.ts
|
||||
M cocoscreator_projects/framework-tests/protocol/contracts.test.ts
|
||||
M cocoscreator_projects/framework-tests/protocol/first-slice-routes.test.ts
|
||||
M cocoscreator_projects/framework-tests/protocol/platform-handlers.test.ts
|
||||
M cocoscreator_projects/framework-tests/sdk/game-contract-harness.test.ts
|
||||
M cocoscreator_projects/framework-tests/sdk/game-session-host.test.ts
|
||||
D cocoscreator_projects/games/.gitkeep
|
||||
D cocoscreator_projects/games/erqiwang/docs/create-room-integration.md
|
||||
D cocoscreator_projects/games/erqiwang/docs/design/design.md
|
||||
D cocoscreator_projects/games/erqiwang/docs/protocol/packet_protocol.md
|
||||
M cocoscreator_projects/scripts/check-import-boundaries.mjs
|
||||
M cocoscreator_projects/scripts/lib/import-boundaries.mjs
|
||||
M docs/protocol/04-数据结构.md
|
||||
?? cocoscreator_projects/YouleNexus/assets/app.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/app/
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/adapters/native/platform-native.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/adapters/native/platform-native.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/adapters/native/room-device-status.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/adapters/native/room-device-status.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/adapters/native/room-voice.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/adapters/native/room-voice.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/config/room-lifecycle.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/config/room-lifecycle.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/platform/room.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/platform/room/
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/platform/stores/dissolution.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/platform/stores/dissolution.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/deferred-numeric-tools.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/deferred-numeric-tools.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/game-room-presentation.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/game-room-presentation.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/keyed-rows.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/keyed-rows.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/multiplier-model.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/multiplier-model.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/numeric-input-model.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/numeric-input-model.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/owned-feedback.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/owned-feedback.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/platform-settings.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/platform-settings.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/resource-lease-cache.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/resource-lease-cache.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/room-broadcast-queue.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/room-broadcast-queue.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/room-chat-config.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/room-chat-config.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/room-exit-action.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/room-exit-action.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/room-hud-model.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/room-hud-model.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/room-menu-context.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/room-menu-context.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/room-menu-model.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/room-menu-model.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/room-owner-notice.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/presentation/room-owner-notice.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/sdk/contracts/game-capabilities.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/sdk/contracts/game-capabilities.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/sdk/contracts/game-definition.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/sdk/contracts/game-definition.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/sdk/contracts/game-room-projection.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/sdk/contracts/game-room-projection.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/sdk/contracts/room-chat.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/sdk/contracts/room-chat.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/sdk/game-room-projection.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/sdk/game-room-projection.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/sdk/room-action-policy.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/sdk/room-action-policy.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/sdk/room-exit-action.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/sdk/room-exit-action.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/ChatHistoryItem.prefab
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/ChatHistoryItem.prefab.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/ChatPhraseItem.prefab
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/ChatPhraseItem.prefab.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/PlayerVoteItem.prefab
|
||||
?? cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/PlayerVoteItem.prefab.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/games/erqiwang/game-config.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/games/erqiwang/game-config.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/games/erqiwang/resources.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/games/erqiwang/resources/
|
||||
?? cocoscreator_projects/YouleNexus/assets/games/erqiwang/room-chat-config.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/games/erqiwang/room-chat-config.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/games/template/game-config.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/games/template/game-config.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/games/template/resources.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/games/template/resources/
|
||||
?? cocoscreator_projects/YouleNexus/assets/games/template/room-chat-config.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/games/template/room-chat-config.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/ApplyVotePanel.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/ApplyVotePanel.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/CommonRoomViewBase.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/CommonRoomViewBase.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/GameComposition.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/GameComposition.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/NumericToolsPanel.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/NumericToolsPanel.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/RoomChatPanel.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/RoomChatPanel.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/RoomHud.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/RoomHud.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/RoomNoticePanel.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/RoomNoticePanel.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/RoomPlatformPanels.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/RoomPlatformPanels.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/RoomUi.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/RoomUi.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/apply-vote-model.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/apply-vote-model.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/avatar-cache.ts
|
||||
?? cocoscreator_projects/YouleNexus/assets/scripts/platform-login/avatar-cache.ts.meta
|
||||
?? cocoscreator_projects/YouleNexus/extensions/youle-version-manifest/
|
||||
?? cocoscreator_projects/docs/
|
||||
?? cocoscreator_projects/framework-tests/architecture/game-definitions.test.ts
|
||||
?? cocoscreator_projects/framework-tests/architecture/player-tip-boundary.test.mjs
|
||||
?? cocoscreator_projects/framework-tests/architecture/room-assets.test.mjs
|
||||
?? cocoscreator_projects/framework-tests/config/game-selection.test.ts
|
||||
?? cocoscreator_projects/framework-tests/config/version-manifest.test.mjs
|
||||
?? cocoscreator_projects/framework-tests/fixtures/build-identity.ts
|
||||
?? cocoscreator_projects/framework-tests/native/platform-native.test.ts
|
||||
?? cocoscreator_projects/framework-tests/native/room-device-status.test.ts
|
||||
?? cocoscreator_projects/framework-tests/native/room-voice.test.ts
|
||||
?? cocoscreator_projects/framework-tests/platform/dissolution.test.ts
|
||||
?? cocoscreator_projects/framework-tests/platform/room-broadcast.test.ts
|
||||
?? cocoscreator_projects/framework-tests/platform/room-hud-model.test.ts
|
||||
?? cocoscreator_projects/framework-tests/platform/room-social.test.ts
|
||||
?? cocoscreator_projects/framework-tests/platform/room/
|
||||
?? cocoscreator_projects/framework-tests/presentation/apply-vote-model.test.ts
|
||||
?? cocoscreator_projects/framework-tests/presentation/deferred-numeric-tools.test.ts
|
||||
?? cocoscreator_projects/framework-tests/presentation/dissolution-settlement-boundary.test.ts
|
||||
?? cocoscreator_projects/framework-tests/presentation/incremental-room-ui.test.ts
|
||||
?? cocoscreator_projects/framework-tests/presentation/numeric-tools.test.ts
|
||||
?? cocoscreator_projects/framework-tests/presentation/owned-feedback.test.ts
|
||||
?? cocoscreator_projects/framework-tests/presentation/platform-settings.test.ts
|
||||
?? cocoscreator_projects/framework-tests/presentation/room-menu-model.test.ts
|
||||
?? cocoscreator_projects/framework-tests/presentation/room-owner-notice.test.ts
|
||||
?? cocoscreator_projects/framework-tests/protocol/opaque-roomtype.test.ts
|
||||
?? cocoscreator_projects/framework-tests/protocol/roomcode-response.test.ts
|
||||
?? cocoscreator_projects/framework-tests/sdk/game-room-projection.test.ts
|
||||
?? cocoscreator_projects/scripts/check-room-assets.mjs
|
||||
?? cocoscreator_projects/scripts/lib/room-assets.mjs
|
||||
?? cocoscreator_projects/scripts/test/version-manifest-build.test.mjs
|
||||
?? cocoscreator_projects/scripts/verify-room-refactor-preview.mjs
|
||||
?? cocoscreator_projects/scripts/verify-room-resource-cycles.mjs
|
||||
?? cocoscreator_projects/scripts/verify-version-xml-preview.mjs
|
||||
?? docs/Layer606-解散投票接线.md
|
||||
?? docs/superpowers/implementations/
|
||||
?? docs/superpowers/plans/2026-09-08-room-platform-refactor.md
|
||||
?? docs/superpowers/specs/2026-09-08-room-platform-api-migration.md
|
||||
?? docs/superpowers/specs/2026-09-08-room-platform-architecture.md
|
||||
?? docs/房间流程审查与架构重构建议.md
|
||||
?? docs/房间菜单与聊天接线.md
|
||||
?? docs/房间顶部广播与数字工具接线.md
|
||||
?? out/
|
||||
@@ -0,0 +1,29 @@
|
||||
const fs=require('fs'),path=require('path');
|
||||
const root=path.resolve(__dirname,'../../cocoscreator_projects/docs/framework');
|
||||
function edit(file,pairs,append=''){const p=path.join(root,file);let s=fs.readFileSync(p,'utf8');for(const [a,b]of pairs)s=s.replaceAll(a,b);fs.writeFileSync(p,s+append);}
|
||||
edit('integration/README.md',[
|
||||
['前端应用注册表的查找键','子游戏入口和 Bundle 的选择键'],
|
||||
['通过应用注册表建立关联','通过子游戏入口定义和 Bundle 名称建立关联'],
|
||||
['目录名 = gameKey = 注册表键 = definition.key','目录名 = gameKey = definition.key'],
|
||||
['game-definitions.ts # 应用注册:引用各游戏实现','game-definitions.ts # 通用入口解析,不引用具体游戏'],
|
||||
['SubgameAssets.ts # 应用选择、资源绑定和版本加载','SubgameAssets.ts # 动态加载目标游戏及版本'],
|
||||
[' game-config.ts # 只定位版本 XML',' game-config.ts # 定位版本 XML 和私有资源根\n game-definition.ts # 本游戏定义\n GameEntry.ts # 注册 GameEntry_mygame'],
|
||||
[" versionResource: 'mygame/version',"," versionResource: 'mygame/version',\n assetRoot: 'games/mygame',"],
|
||||
['在 [game-definitions.ts](../sdk/contracts.md) 导入自己的工厂、配置、聊天配置,并添加注册项。','在自己的 `assets/games/mygame/game-definition.ts` 导入本游戏工厂、配置和聊天配置,导出只包含本游戏的 `GAME_DEFINITIONS`。公共应用层不添加注册项。'],
|
||||
['- `chat`:','- `roomMenu`:显式提供 mainSceneButton、vipInfinite 两个布尔策略。\n- `chat`:'],
|
||||
['**当前这些资源路径描述不会自动给启动组件赋值。**','**createRoom 和 room 按定义从目标游戏 Bundle 自动加载,不再绑定到启动场景。**'],
|
||||
['及绑定 prefab','及在游戏 prefab 挂载组件'],
|
||||
['1. `gameKey`:注册表中的目标键。','1. `gameKey`:目标游戏键。'],
|
||||
['2. `createRoom`:目标游戏创建页面 prefab,根节点挂自己的 CreateRoomPage 子类。','2. 创建页面 prefab 在本游戏定义中声明,根节点挂自己的 CreateRoomPage 子类。'],
|
||||
['3. `room`:目标游戏房间 prefab,根节点挂匹配 roomViewClass 的组件。','3. 房间 prefab 在本游戏定义中声明,根节点挂匹配 roomViewClass 的组件。'],
|
||||
],'\n## 7. Bundle 入口\n\n游戏根目录设置为 `game-<gameKey>` Bundle;版本子目录保持 `version-<gameKey>` Bundle。\n\n```ts\nimport {_decorator} from \'cc\';\nimport {GAME_DEFINITIONS} from \'./game-definition.ts\';\n@_decorator.ccclass(\'GameEntry_mygame\')\nexport class MyGameEntry {\n static readonly definition = GAME_DEFINITIONS.mygame;\n}\n```\n\n启动等待目标 Bundle 加载完成,通过公开类注册 API 读取入口定义,然后加载私有 prefab 和版本 XML。入口缺失、键不匹配、资源越界或加载失败均显式报错,不回退到其他游戏。新增游戏不修改 app/framework/scripts 或公共资源。\n');
|
||||
edit('build/version-and-build.md',[
|
||||
['绑定 ErqiwangCreateRoom.prefab、ErqiwangRoom.prefab,以及当前承载场景 TemplateRoom.scene','保留公共承载场景 TemplateRoom.scene;两份私有 prefab 由入口自动加载'],
|
||||
['并保留所选版本 bundle','Bundle 列表取消全选,仅保留 game-erqiwang 和 version-erqiwang(main/internal 为公共包)'],
|
||||
['- gameKey 选择已生效,但 createRoom/room/roomScene 仍需手动绑定;注册表中的路径描述不会自动替换 Inspector 引用。','- gameKey 选择游戏入口和私有 prefab;roomScene 保持公共承载场景绑定。'],
|
||||
['- 尚未实现完整的未选游戏代码和资源裁剪。当前实测构建仍包含两款游戏的版本 bundle,注册表也引用两款游戏代码。','- 公共应用层已解除具体游戏静态导入。构建需显式只选择目标游戏和目标版本 Bundle;gameKey 尚未自动同步构建面板勾选项。'],
|
||||
['`Unknown game definition`:场景 gameKey 不在应用注册表。','`Missing subgame entry`:目标 Bundle 未注册 GameEntry_<gameKey>。'],
|
||||
['检查 SubgameAssets 的实际 prefab 绑定。','检查本游戏 definition.resources 与 gameKey。'],
|
||||
]);
|
||||
edit('build/README.md',[['绑定目标创建页、房间和承载场景','自动加载目标创建页和房间,绑定公共承载场景']]);
|
||||
edit('integration/create-room.md',[['并在 SubgameAssets 绑定 room 与 roomScene','在本游戏定义中声明 room 路径,在 SubgameAssets 保留公共 roomScene 绑定']]);
|
||||
Reference in New Issue
Block a user