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:
2026-09-09 03:13:18 +08:00
parent a7ec8aa6a7
commit 35216f75e7
1028 changed files with 835556 additions and 21415 deletions
@@ -2,7 +2,7 @@ import { STARTUP_CONFIG } from '../../YouleNexus/assets/framework/config/profile
import { test } from 'node:test';
import assert from 'node:assert/strict';
import { resolveLocalStartup } from '../../YouleNexus/assets/framework/config/local-startup.ts';
import { BUILD_IDENTITY } from '../../YouleNexus/assets/framework/config/sources/defaults.ts';
import { BUILD_IDENTITY } from '../fixtures/build-identity.ts';
import { localAccountKey, type LocalStoragePort } from '../../YouleNexus/assets/framework/adapters/local/local-storage.ts';
import { createLocalLoginSources } from '../../YouleNexus/assets/framework/adapters/local/login-sources.ts';
import { buildLoginRequest } from '../../YouleNexus/assets/framework/protocol/contracts/index.ts';
@@ -14,7 +14,7 @@ class MapStorage implements LocalStoragePort {
}
function resolve(search = '?profile=local') {
return resolveLocalStartup({ startupConfig:{...STARTUP_CONFIG,configSource:'remote'}, hostKind: 'h5', win: {}, search,
return resolveLocalStartup({buildIdentity:BUILD_IDENTITY, startupConfig:{...STARTUP_CONFIG,configSource:'remote'}, hostKind: 'h5', win: {}, search,
fetcher: { async fetch() { return { player_server_tcp: 'remote.example:3088' }; } } });
}
@@ -1,3 +1,4 @@
import { BUILD_IDENTITY } from '../fixtures/build-identity.ts';
import { STARTUP_CONFIG as EDITABLE_STARTUP_CONFIG } from '../../YouleNexus/assets/framework/config/profiles.ts';
// 固定测试来源,允许开发者独立切换项目的 local/remote 开关。
const STARTUP_CONFIG = Object.freeze({...EDITABLE_STARTUP_CONFIG, configSource:'remote' as const});
@@ -123,7 +124,7 @@ test('real modern vertical replay preserves wire contracts, room ordering and te
};
const runtime = new PlatformRuntime({
gameEntry: entry,
resolveRuntimeConfig: () => resolveRuntimeConfig({
resolveRuntimeConfig: () => resolveRuntimeConfig({buildIdentity:BUILD_IDENTITY,
startupConfig: {...STARTUP_CONFIG,mode:'release',useLocalServer:false}, hostKind: 'native-settings', search: '',
win: { settings: {
getothername(name: string) {