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
@@ -0,0 +1,46 @@
{
"importBase": "import",
"nativeBase": "native",
"name": "main",
"deps": [
"internal"
],
"uuids": [
"18f06ada-9d36-485c-9f44-556d6980ca7a",
"ba21476f-2866-4f81-9c4d-6e359316e448",
"fd8ec536-a354-4a17-9c74-4f3883c378c8"
],
"paths": {
"18f06ada-9d36-485c-9f44-556d6980ca7a": [
"db:/assets/scenes/Probe",
"cc.SceneAsset",
1
],
"fd8ec536-a354-4a17-9c74-4f3883c378c8": [
"db:/internal/default_renderpipeline/builtin-forward",
"cc.RenderPipeline",
1
],
"ba21476f-2866-4f81-9c4d-6e359316e448": [
"db:/internal/physics/default-physics-material",
"cc.PhysicsMaterial",
1
]
},
"scenes": {
"db://assets/scenes/Probe.scene": "18f06ada-9d36-485c-9f44-556d6980ca7a"
},
"packs": {},
"versions": {
"import": [],
"native": []
},
"redirect": [
"ba21476f-2866-4f81-9c4d-6e359316e448",
"0"
],
"debug": true,
"extensionMap": {},
"hasPreloadScript": true,
"dependencyRelationships": {}
}
@@ -0,0 +1 @@
[1,0,["node","_cameraComponent","scene","_parent"],[["cc.SceneAsset",["_name"],2],["cc.Scene",["_name","_children","_globals"],2,2,4],["cc.Node",["_name","_layer","_id","_children","_components","_lpos"],0,2,9,5],["cc.Node",["_name","_parent","_components","_lpos"],2,1,2,5],["cc.Camera",["_projection","_orthoHeight","_near","_far","_visibility","node","_color"],-2,1,5],["cc.UITransform",["node","_contentSize"],3,1,5],["cc.Canvas",["node","_cameraComponent"],3,1,1],["cc.Widget",["_alignFlags","_top","_bottom","node"],0,1],["cc.SceneGlobals",["ambient","shadows","_skybox","fog","octree","skin","lightProbeInfo","postSettings"],3,4,4,4,4,4,4,4,4],["cc.AmbientInfo",["_skyColorHDR"],3,5],["cc.ShadowsInfo",[],3],["cc.SkyboxInfo",[],3],["cc.FogInfo",[],3],["cc.OctreeInfo",[],3],["cc.SkinInfo",[],3],["cc.LightProbeInfo",[],3],["cc.PostSettingsInfo",[],3]],[[0,0,2],[1,0,1,2,2],[2,0,1,2,3,4,5,4],[3,0,1,2,3,2],[4,0,1,2,3,4,5,6,6],[5,0,1,1],[6,0,1,1],[7,0,1,2,3,4],[8,0,1,2,3,4,5,6,7,1],[9,0,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1]],[[0,"Probe"],[2,"Canvas",33554432,"1cgbnsENBDoLhHJwvyJnKB",[-5],[[5,-1,[5,1600,720]],[6,-3,-2],[7,45,5.684341886080802e-14,5.684341886080802e-14,-4]],[1,800,360.00000000000006,0]],[1,"TemplateRoom",[1],[8,[9,[2,0.2,0.5,0.8,0.520833125]],[10],[11],[12],[13],[14],[15],[16]]],[3,"Camera",1,[-6],[1,0,0,1000]],[4,0,360,0,2000,1108344832,3,[4,4278190080]]],0,[0,0,1,0,1,4,0,0,1,0,0,1,0,-1,3,0,-1,4,0,2,2,1,3,2,6],[],[],[]]
@@ -0,0 +1 @@
[1,0,0,[["RenderQueueDesc",["stages","isTransparent","sortMode"],0],["ForwardPipeline",["_flows"],3,9],["ShadowFlow",["_name","_stages"],2,9],["ShadowStage",["_name"],2],["ForwardFlow",["_name","_priority","_stages"],1,9],["ForwardStage",["_name","renderQueues"],2,9]],[[1,0,1],[2,0,1,2],[3,0,2],[4,0,1,2,3],[5,0,1,2],[0,0,2],[0,1,2,0,4]],[[0,[[1,"ShadowFlow",[[2,"ShadowStage"]]],[3,"ForwardFlow",1,[[4,"ForwardStage",[[5,["default"]],[6,true,1,["default"]]]]]]]]],0,0,[],[],[]]
@@ -0,0 +1,119 @@
System.register("chunks:///_virtual/Boot.ts", ['./rollupPluginModLoBabelHelpers.js', 'cc'], function () {
var _asyncToGenerator, _regeneratorRuntime, cclegacy, director, Director, instantiate, js, Prefab, TextAsset, assetManager;
return {
setters: [function (module) {
_asyncToGenerator = module.asyncToGenerator;
_regeneratorRuntime = module.regeneratorRuntime;
}, function (module) {
cclegacy = module.cclegacy;
director = module.director;
Director = module.Director;
instantiate = module.instantiate;
js = module.js;
Prefab = module.Prefab;
TextAsset = module.TextAsset;
assetManager = module.assetManager;
}],
execute: function () {
cclegacy._RF.push({}, "d3a6crOBwVLlLjTY3gqQ3kp", "Boot", undefined);
director.once(Director.EVENT_AFTER_SCENE_LAUNCH, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
var report, target, bundle, entry, text, prefab, node;
return _regeneratorRuntime().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
report = {
ok: false,
requests: []
};
globalThis.__probe = report;
_context.prev = 2;
_context.next = 5;
return fetch('./target.json').then(function (r) {
if (!r.ok) throw Error('target missing');
return r.json();
});
case 5:
target = _context.sent;
report.selected = target.bundle;
_context.next = 9;
return new Promise(function (resolve, reject) {
return assetManager.loadBundle(target.bundle, function (e, b) {
return e ? reject(e) : resolve(b);
});
});
case 9:
bundle = _context.sent;
entry = js.getClassByName(target.entry);
if (entry) {
_context.next = 13;
break;
}
throw Error('entry missing');
case 13:
report.code = entry.run();
_context.next = 16;
return new Promise(function (resolve, reject) {
return bundle.load('private', TextAsset, function (e, a) {
return e ? reject(e) : resolve(a);
});
});
case 16:
text = _context.sent;
report.text = text.text;
_context.next = 20;
return new Promise(function (resolve, reject) {
return bundle.load('View', Prefab, function (e, a) {
return e ? reject(e) : resolve(a);
});
});
case 20:
prefab = _context.sent;
node = instantiate(prefab);
node.parent = director.getScene();
report.prefab = node.name;
report.otherRegistered = !!js.getClassByName(target.otherEntry);
report.ok = true;
_context.next = 31;
break;
case 28:
_context.prev = 28;
_context.t0 = _context["catch"](2);
report.error = String(_context.t0);
case 31:
console.log('PROBE_RESULT', JSON.stringify(report));
case 32:
case "end":
return _context.stop();
}
}, _callee, null, [[2, 28]]);
})));
cclegacy._RF.pop();
}
};
});
System.register("chunks:///_virtual/main", ['./Boot.ts'], function () {
return {
setters: [null],
execute: function () {}
};
});
(function(r) {
r('virtual:///prerequisite-imports/main', 'chunks:///_virtual/main');
})(function(mid, cid) {
System.register(mid, [cid], function (_export, _context) {
return {
setters: [function(_m) {
var _exportObj = {};
for (var _key in _m) {
if (_key !== "default" && _key !== "__esModule") _exportObj[_key] = _m[_key];
}
_export(_exportObj);
}],
execute: function () { }
};
});
});