diff --git a/.hermes/shared-memory/decision-log.md b/.hermes/shared-memory/decision-log.md index 4982f080..8536eea5 100644 --- a/.hermes/shared-memory/decision-log.md +++ b/.hermes/shared-memory/decision-log.md @@ -51,10 +51,10 @@ ## 2026-05-25 抓大鹅发现页官方 demo 使用静态资源与本地运行态 -- 背景:本轮抓大鹅资源管线已经生成完整 `level-scene`、背景、UI spritesheet、物品 spritesheet 和切片资源,需要放入发现页作为可试玩验证入口,但不应把一次性本地资源包装成后端正式作品。 -- 决策:发现页官方抓大鹅 demo 固定 profileId 为 `match3d-demo-20260525`、公开作品号为 `M3-20260525`,资源读取 `public/match3d-demo/undersea-candy-market/` 下的静态文件。公开卡片、作品号搜索和详情页沿用平台公开作品详情链路;启动运行态时用 `createLocalMatch3DRuntimeAdapter`,不调用正式 Match3D runtime 后端、不新增 SpacetimeDB schema、不写正式作品统计。 -- 影响范围:`src/data/match3dDemoGalleryCard.ts`、`src/components/platform-entry/PlatformEntryFlowShellImpl.tsx`、发现页公开卡片、作品号搜索、Match3D 本地 runtime adapter、玩法链路文档。 -- 验证方式:搜索 `M3-20260525` 能打开“海底糖果集市”并启动本地抓大鹅运行态;正式 Match3D 公开作品仍走 server runtime adapter。 +- 背景:本轮抓大鹅资源管线曾生成一套官方静态 demo,用于验证生图、切图和运行态资源闭环,但该 demo 已被移除,不再作为发现页入口。 +- 决策:发现页不再挂载前端固定官方抓大鹅 demo;公开卡片、作品号搜索、详情页和运行态启动全部来自后端真实 profile / gallery 投影,正式作品统一走 server runtime adapter。 +- 影响范围:`src/components/platform-entry/PlatformEntryFlowShellImpl.tsx`、`src/components/rpg-entry/RpgEntryHomeView.tsx`、原前端 demo 数据文件(已删除)、Match3D 相关测试与原静态资源目录(已删除)。 +- 验证方式:发现页不再出现原固定 demo;Match3D 公共详情只从真实后端作品数据读取。 - 关联文档:`docs/【玩法创作】平台入口与玩法链路-2026-05-15.md`。 ## 2026-05-25 抓大鹅运行态 HUD 收敛为拼图同款低遮挡样式 diff --git a/docs/【玩法创作】平台入口与玩法链路-2026-05-15.md b/docs/【玩法创作】平台入口与玩法链路-2026-05-15.md index d9c2fc8e..6092eeb5 100644 --- a/docs/【玩法创作】平台入口与玩法链路-2026-05-15.md +++ b/docs/【玩法创作】平台入口与玩法链路-2026-05-15.md @@ -229,7 +229,7 @@ RPG / 拼图等运行态存档仍以 `/api/profile/save-archives` 的后端列 - 抓大鹅运行态不渲染右上角设置入口,也不在局内直接暴露重新开始按钮;结算弹层仍保留结果态的再来一局动作。 - 高 DPR 移动端 WebGL canvas 必须锁定 CSS 尺寸,避免右下溢出。 -发现页可挂载官方抓大鹅静态 demo,用于验证生图、切图和运行态资源闭环。当前 demo profile 固定为 `match3d-demo-20260525`,公开作品号为 `M3-20260525`,静态资源位于 `public/match3d-demo/undersea-candy-market/`;公开卡片、作品号搜索和详情启动都走平台现有公开作品详情,不新建页面。demo 运行态使用前端本地 `createLocalMatch3DRuntimeAdapter`,不调用正式 Match3D runtime 后端、不新增 SpacetimeDB schema,也不写正式作品统计;后续若要把 demo 资源转成正式公开作品,必须改为后端 profile / gallery 投影真相后再接正式 runtime。 +发现页不再挂载前端固定官方抓大鹅静态 demo;公开卡片、作品号搜索、详情页和运行态启动只能来自后端真实 profile / gallery 投影。正式公开作品统一走 server runtime adapter,前端不得再用本地 demo profile 绕过后端统计和运行态链路。 ## 视觉小说 diff --git a/public/match3d-demo/undersea-candy-market/background.png b/public/match3d-demo/undersea-candy-market/background.png deleted file mode 100644 index 06764c39..00000000 Binary files a/public/match3d-demo/undersea-candy-market/background.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-01/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-01/view-01.png deleted file mode 100644 index 67773c2a..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-01/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-01/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-01/view-02.png deleted file mode 100644 index c54a7a31..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-01/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-01/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-01/view-03.png deleted file mode 100644 index 18698bcd..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-01/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-01/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-01/view-04.png deleted file mode 100644 index e7457b08..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-01/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-01/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-01/view-05.png deleted file mode 100644 index d41a367f..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-01/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-02/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-02/view-01.png deleted file mode 100644 index 91be1458..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-02/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-02/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-02/view-02.png deleted file mode 100644 index f63c07f9..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-02/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-02/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-02/view-03.png deleted file mode 100644 index ea63913b..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-02/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-02/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-02/view-04.png deleted file mode 100644 index d794113a..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-02/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-02/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-02/view-05.png deleted file mode 100644 index 1ca654a8..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-02/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-03/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-03/view-01.png deleted file mode 100644 index 36bd5018..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-03/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-03/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-03/view-02.png deleted file mode 100644 index d7c5b6de..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-03/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-03/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-03/view-03.png deleted file mode 100644 index 342bfdc3..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-03/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-03/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-03/view-04.png deleted file mode 100644 index 53df10fd..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-03/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-03/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-03/view-05.png deleted file mode 100644 index 34209763..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-03/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-04/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-04/view-01.png deleted file mode 100644 index 15b3d3a7..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-04/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-04/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-04/view-02.png deleted file mode 100644 index 143b2e1a..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-04/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-04/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-04/view-03.png deleted file mode 100644 index 42e30771..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-04/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-04/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-04/view-04.png deleted file mode 100644 index 2a255bfd..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-04/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-04/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-04/view-05.png deleted file mode 100644 index 86540e77..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-04/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-05/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-05/view-01.png deleted file mode 100644 index aa029a38..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-05/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-05/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-05/view-02.png deleted file mode 100644 index b1967dfc..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-05/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-05/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-05/view-03.png deleted file mode 100644 index e040cca0..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-05/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-05/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-05/view-04.png deleted file mode 100644 index 8c144659..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-05/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-05/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-05/view-05.png deleted file mode 100644 index 7f3a1a4a..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-05/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-06/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-06/view-01.png deleted file mode 100644 index de0ec31e..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-06/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-06/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-06/view-02.png deleted file mode 100644 index a4c02a82..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-06/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-06/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-06/view-03.png deleted file mode 100644 index 3374aa7f..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-06/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-06/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-06/view-04.png deleted file mode 100644 index 6e01f5a4..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-06/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-06/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-06/view-05.png deleted file mode 100644 index d31e82dc..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-06/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-07/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-07/view-01.png deleted file mode 100644 index ea3629a8..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-07/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-07/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-07/view-02.png deleted file mode 100644 index 289752a5..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-07/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-07/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-07/view-03.png deleted file mode 100644 index 13f1641f..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-07/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-07/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-07/view-04.png deleted file mode 100644 index f157cc56..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-07/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-07/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-07/view-05.png deleted file mode 100644 index 52f6d48d..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-07/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-08/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-08/view-01.png deleted file mode 100644 index 5a15a321..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-08/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-08/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-08/view-02.png deleted file mode 100644 index be8d0f52..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-08/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-08/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-08/view-03.png deleted file mode 100644 index 5fcfba72..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-08/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-08/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-08/view-04.png deleted file mode 100644 index e02c8b76..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-08/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-08/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-08/view-05.png deleted file mode 100644 index 28cb6b4a..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-08/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-09/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-09/view-01.png deleted file mode 100644 index 7a506040..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-09/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-09/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-09/view-02.png deleted file mode 100644 index 550a5434..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-09/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-09/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-09/view-03.png deleted file mode 100644 index f11e249b..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-09/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-09/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-09/view-04.png deleted file mode 100644 index ac3450d3..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-09/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-09/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-09/view-05.png deleted file mode 100644 index f28a51eb..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-09/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-10/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-10/view-01.png deleted file mode 100644 index c1b0f126..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-10/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-10/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-10/view-02.png deleted file mode 100644 index 7e94a7cd..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-10/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-10/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-10/view-03.png deleted file mode 100644 index 8687dcdf..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-10/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-10/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-10/view-04.png deleted file mode 100644 index c8db5f3d..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-10/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-10/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-10/view-05.png deleted file mode 100644 index baed94e9..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-10/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-11/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-11/view-01.png deleted file mode 100644 index 1657cda2..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-11/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-11/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-11/view-02.png deleted file mode 100644 index 8ed07b3f..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-11/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-11/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-11/view-03.png deleted file mode 100644 index 15529207..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-11/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-11/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-11/view-04.png deleted file mode 100644 index 2a86bdff..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-11/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-11/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-11/view-05.png deleted file mode 100644 index 287c5062..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-11/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-12/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-12/view-01.png deleted file mode 100644 index b4bec1b1..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-12/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-12/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-12/view-02.png deleted file mode 100644 index bc9a5efc..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-12/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-12/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-12/view-03.png deleted file mode 100644 index f33ac7a1..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-12/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-12/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-12/view-04.png deleted file mode 100644 index 6aef21e4..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-12/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-12/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-12/view-05.png deleted file mode 100644 index 28ccfebd..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-12/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-13/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-13/view-01.png deleted file mode 100644 index b96f8659..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-13/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-13/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-13/view-02.png deleted file mode 100644 index cab8dcce..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-13/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-13/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-13/view-03.png deleted file mode 100644 index e6c596b5..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-13/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-13/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-13/view-04.png deleted file mode 100644 index de19c617..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-13/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-13/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-13/view-05.png deleted file mode 100644 index 2a97686e..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-13/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-14/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-14/view-01.png deleted file mode 100644 index a85d8846..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-14/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-14/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-14/view-02.png deleted file mode 100644 index 89700c47..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-14/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-14/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-14/view-03.png deleted file mode 100644 index 93d5a24e..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-14/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-14/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-14/view-04.png deleted file mode 100644 index 306f389f..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-14/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-14/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-14/view-05.png deleted file mode 100644 index b2e15f9c..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-14/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-15/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-15/view-01.png deleted file mode 100644 index e0e4c830..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-15/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-15/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-15/view-02.png deleted file mode 100644 index 5b2075bc..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-15/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-15/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-15/view-03.png deleted file mode 100644 index 0ec2990e..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-15/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-15/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-15/view-04.png deleted file mode 100644 index 9f67b3c2..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-15/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-15/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-15/view-05.png deleted file mode 100644 index abac6fda..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-15/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-16/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-16/view-01.png deleted file mode 100644 index 2ffb76b5..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-16/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-16/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-16/view-02.png deleted file mode 100644 index 905fbcae..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-16/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-16/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-16/view-03.png deleted file mode 100644 index 8088e492..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-16/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-16/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-16/view-04.png deleted file mode 100644 index 7bcf8ed3..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-16/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-16/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-16/view-05.png deleted file mode 100644 index 0a92a912..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-16/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-17/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-17/view-01.png deleted file mode 100644 index 68414718..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-17/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-17/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-17/view-02.png deleted file mode 100644 index 8ab28c8d..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-17/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-17/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-17/view-03.png deleted file mode 100644 index f010a827..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-17/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-17/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-17/view-04.png deleted file mode 100644 index 2d9d8dda..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-17/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-17/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-17/view-05.png deleted file mode 100644 index 6b048f4d..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-17/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-18/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-18/view-01.png deleted file mode 100644 index 09fb23c1..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-18/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-18/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-18/view-02.png deleted file mode 100644 index 8f69247a..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-18/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-18/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-18/view-03.png deleted file mode 100644 index ed575181..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-18/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-18/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-18/view-04.png deleted file mode 100644 index ab399979..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-18/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-18/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-18/view-05.png deleted file mode 100644 index ff5820dc..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-18/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-19/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-19/view-01.png deleted file mode 100644 index 19b53c51..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-19/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-19/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-19/view-02.png deleted file mode 100644 index 6f114282..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-19/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-19/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-19/view-03.png deleted file mode 100644 index 806861f8..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-19/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-19/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-19/view-04.png deleted file mode 100644 index 3b1c5aca..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-19/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-19/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-19/view-05.png deleted file mode 100644 index e08a962e..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-19/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-20/view-01.png b/public/match3d-demo/undersea-candy-market/item-slices/item-20/view-01.png deleted file mode 100644 index 1f93d6b0..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-20/view-01.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-20/view-02.png b/public/match3d-demo/undersea-candy-market/item-slices/item-20/view-02.png deleted file mode 100644 index 9f208acf..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-20/view-02.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-20/view-03.png b/public/match3d-demo/undersea-candy-market/item-slices/item-20/view-03.png deleted file mode 100644 index 8cf39682..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-20/view-03.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-20/view-04.png b/public/match3d-demo/undersea-candy-market/item-slices/item-20/view-04.png deleted file mode 100644 index 1b16d126..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-20/view-04.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-slices/item-20/view-05.png b/public/match3d-demo/undersea-candy-market/item-slices/item-20/view-05.png deleted file mode 100644 index a85ff45b..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-slices/item-20/view-05.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/item-spritesheet.png b/public/match3d-demo/undersea-candy-market/item-spritesheet.png deleted file mode 100644 index fc4a95ea..00000000 Binary files a/public/match3d-demo/undersea-candy-market/item-spritesheet.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/level-scene.png b/public/match3d-demo/undersea-candy-market/level-scene.png deleted file mode 100644 index 256562ef..00000000 Binary files a/public/match3d-demo/undersea-candy-market/level-scene.png and /dev/null differ diff --git a/public/match3d-demo/undersea-candy-market/ui-spritesheet.png b/public/match3d-demo/undersea-candy-market/ui-spritesheet.png deleted file mode 100644 index b096ea0f..00000000 Binary files a/public/match3d-demo/undersea-candy-market/ui-spritesheet.png and /dev/null differ diff --git a/src/components/platform-entry/PlatformEntryFlowShellImpl.tsx b/src/components/platform-entry/PlatformEntryFlowShellImpl.tsx index 253ad754..48a1278c 100644 --- a/src/components/platform-entry/PlatformEntryFlowShellImpl.tsx +++ b/src/components/platform-entry/PlatformEntryFlowShellImpl.tsx @@ -108,12 +108,6 @@ import type { VisualNovelWorkSummary, } from '../../../packages/shared/src/contracts/visualNovel'; import { buildCustomWorldPlayableCharacters } from '../../data/characterPresets'; -import { - MATCH3D_DEMO_GALLERY_CARD, - MATCH3D_DEMO_PROFILE_ID, - MATCH3D_DEMO_WORK_PROFILE, - isMatch3DDemoProfileId, -} from '../../data/match3dDemoGalleryCard'; import { buildPublicWorkStagePath, pushAppHistoryPath, @@ -198,10 +192,7 @@ import { JumpHopWorkspaceCreateRequest, } from '../../services/jump-hop/jumpHopClient'; import { match3dCreationClient } from '../../services/match3d-creation'; -import { - createLocalMatch3DRuntimeAdapter, - createServerMatch3DRuntimeAdapter, -} from '../../services/match3d-runtime'; +import { createServerMatch3DRuntimeAdapter } from '../../services/match3d-runtime'; import { deleteMatch3DWork, getMatch3DWorkDetail, @@ -4359,9 +4350,6 @@ export function PlatformEntryFlowShellImpl({ } return '服务端预览'; }, [agentResultPreview]); - const match3dDemoProfile = MATCH3D_DEMO_WORK_PROFILE; - const match3dDemoGalleryCard = MATCH3D_DEMO_GALLERY_CARD; - const featuredGalleryEntries = useMemo(() => { const bigFishPublicEntries = isBigFishCreationVisible ? bigFishGalleryEntries.map(mapBigFishWorkToPlatformGalleryCard) @@ -4400,7 +4388,6 @@ export function PlatformEntryFlowShellImpl({ [ ...bigFishPublicEntries, ...match3dPublicEntries, - match3dDemoGalleryCard, ...puzzlePublicEntries, ...barkBattlePublicEntries, ...squareHolePublicEntries, @@ -4425,7 +4412,6 @@ export function PlatformEntryFlowShellImpl({ squareHoleGalleryEntries, visualNovelGalleryEntries, woodenFishGalleryEntries, - match3dDemoGalleryCard, ]); const latestGalleryEntries = useMemo( () => @@ -4436,7 +4422,6 @@ export function PlatformEntryFlowShellImpl({ ? bigFishGalleryEntries.map(mapBigFishWorkToPlatformGalleryCard) : []), ...match3dGalleryEntries.map(mapMatch3DWorkToPublicWorkDetail), - match3dDemoGalleryCard, ...puzzleGalleryEntries.map(mapPuzzleWorkToPlatformGalleryCard), ...barkBattleGalleryEntries.map(mapBarkBattleWorkToPlatformGalleryCard), ...jumpHopGalleryEntries.map(mapJumpHopWorkToPlatformGalleryCard), @@ -4478,7 +4463,6 @@ export function PlatformEntryFlowShellImpl({ barkBattleGalleryEntries, barkBattleWorks, woodenFishGalleryEntries, - match3dDemoGalleryCard, ], ); const recommendRuntimeEntries = useMemo(() => { @@ -4486,9 +4470,7 @@ export function PlatformEntryFlowShellImpl({ filterGeneralPublicWorks([ ...featuredGalleryEntries, ...latestGalleryEntries, - ]) - .filter((entry) => !isMatch3DDemoProfileId(entry.profileId)) - .forEach((entry) => { + ]).forEach((entry) => { entryMap.set(getPlatformPublicGalleryEntryKey(entry), entry); }); return Array.from(entryMap.values()); @@ -5044,20 +5026,9 @@ export function PlatformEntryFlowShellImpl({ () => createServerMatch3DRuntimeAdapter(), [], ); - const match3dDemoRuntimeAdapter = useMemo( - () => - createLocalMatch3DRuntimeAdapter({ - clearCount: 21, - profileId: MATCH3D_DEMO_PROFILE_ID, - }), - [], - ); const resolveMatch3DRuntimeAdapter = useCallback( - (profileId: string | null | undefined) => - isMatch3DDemoProfileId(profileId) - ? match3dDemoRuntimeAdapter - : match3dRuntimeAdapter, - [match3dDemoRuntimeAdapter, match3dRuntimeAdapter], + (_profileId: string | null | undefined) => match3dRuntimeAdapter, + [match3dRuntimeAdapter], ); const match3dFlow = usePlatformCreationAgentFlowController< Match3DAgentSessionSnapshot, @@ -9733,11 +9704,9 @@ export function PlatformEntryFlowShellImpl({ setMatch3DError(null); try { - const isDemoProfile = isMatch3DDemoProfileId(profile.profileId); let runtimeProfile: Match3DWorkProfile | Match3DWorkSummary = - isDemoProfile ? match3dDemoProfile : profile; + profile; if ( - !isDemoProfile && (!hasMatch3DRuntimeAsset(profile.generatedItemAssets) || !hasMatch3DRuntimeBackgroundAsset(profile)) ) { @@ -9818,7 +9787,6 @@ export function PlatformEntryFlowShellImpl({ }, [ isMatch3DBusy, - match3dDemoProfile, authUi, match3dFlow, resolveMatch3DErrorMessage, @@ -11599,11 +11567,8 @@ export function PlatformEntryFlowShellImpl({ try { const entries = match3dGalleryEntries.length > 0 - ? [...match3dGalleryEntries, match3dDemoProfile] - : await refreshMatch3DGallery().then((items) => [ - ...items, - match3dDemoProfile, - ]); + ? match3dGalleryEntries + : await refreshMatch3DGallery(); const matchedEntry = entries.find( (entry) => entry.profileId === profileId, ); @@ -11623,7 +11588,6 @@ export function PlatformEntryFlowShellImpl({ }, [ match3dGalleryEntries, - match3dDemoProfile, openPublicWorkDetail, refreshMatch3DGallery, resolveMatch3DErrorMessage, @@ -14223,11 +14187,8 @@ export function PlatformEntryFlowShellImpl({ const tryOpenMatch3DGalleryEntry = async () => { const entries = match3dGalleryEntries.length > 0 - ? [...match3dGalleryEntries, match3dDemoProfile] - : await refreshMatch3DGallery().then((items) => [ - ...items, - match3dDemoProfile, - ]); + ? match3dGalleryEntries + : await refreshMatch3DGallery(); const matchedEntry = entries.find((entry) => { const detailEntry = mapMatch3DWorkToPublicWorkDetail(entry); return ( @@ -14644,7 +14605,6 @@ export function PlatformEntryFlowShellImpl({ refreshBigFishGallery, resolveBigFishErrorMessage, setBigFishError, - match3dDemoProfile, ], ); diff --git a/src/components/rpg-entry/RpgEntryFlowShell.agent.interaction.test.tsx b/src/components/rpg-entry/RpgEntryFlowShell.agent.interaction.test.tsx index 5edb2388..e1641ac3 100644 --- a/src/components/rpg-entry/RpgEntryFlowShell.agent.interaction.test.tsx +++ b/src/components/rpg-entry/RpgEntryFlowShell.agent.interaction.test.tsx @@ -84,7 +84,6 @@ import { } from '../../services/edutainment-baby-object'; import { match3dCreationClient } from '../../services/match3d-creation'; import { - createLocalMatch3DRuntimeAdapter, createServerMatch3DRuntimeAdapter, } from '../../services/match3d-runtime'; import { @@ -674,7 +673,6 @@ vi.mock('../../services/match3dGeneratedModelCache', () => ({ })); const match3dRuntimeServiceMocks = vi.hoisted(() => ({ - createLocalMatch3DRuntimeAdapter: vi.fn(), createServerMatch3DRuntimeAdapter: vi.fn(), })); @@ -687,15 +685,6 @@ const match3dServerRuntimeAdapterMock = vi.hoisted(() => ({ stopRun: vi.fn(), })); -const match3dLocalRuntimeAdapterMock = vi.hoisted(() => ({ - clickItem: vi.fn(), - finishTimeUp: vi.fn(), - getRun: vi.fn(), - restartRun: vi.fn(), - startRun: vi.fn(), - stopRun: vi.fn(), -})); - vi.mock('../../services/match3d-runtime', async () => { const actual = await vi.importActual< typeof import('../../services/match3d-runtime') @@ -2405,9 +2394,6 @@ beforeEach(() => { vi.mocked(createServerMatch3DRuntimeAdapter).mockReturnValue( match3dServerRuntimeAdapterMock, ); - vi.mocked(createLocalMatch3DRuntimeAdapter).mockReturnValue( - match3dLocalRuntimeAdapterMock, - ); match3dServerRuntimeAdapterMock.startRun.mockRejectedValue( new Error('未启动抓大鹅运行态'), ); @@ -2423,21 +2409,6 @@ beforeEach(() => { match3dServerRuntimeAdapterMock.stopRun.mockResolvedValue({ run: buildMockMatch3DRun('match3d-profile-stopped'), }); - match3dLocalRuntimeAdapterMock.startRun.mockResolvedValue({ - run: buildMockMatch3DRun('match3d-demo-20260525'), - }); - match3dLocalRuntimeAdapterMock.clickItem.mockRejectedValue( - new Error('未执行本地抓大鹅点击'), - ); - match3dLocalRuntimeAdapterMock.restartRun.mockResolvedValue({ - run: buildMockMatch3DRun('match3d-demo-20260525'), - }); - match3dLocalRuntimeAdapterMock.finishTimeUp.mockResolvedValue({ - run: buildMockMatch3DRun('match3d-demo-20260525'), - }); - match3dLocalRuntimeAdapterMock.stopRun.mockResolvedValue({ - run: buildMockMatch3DRun('match3d-demo-20260525'), - }); window.history.replaceState(null, '', '/'); window.sessionStorage.clear(); window.localStorage.clear(); @@ -8390,38 +8361,6 @@ test('public code search opens a published Match3D work by M3 code and starts ru expect(getRpgEntryWorldGalleryDetailByCode).not.toHaveBeenCalled(); }); -test('public code search opens the local Match3D demo and starts local runtime', async () => { - const user = userEvent.setup(); - - vi.mocked(listMatch3DGallery).mockResolvedValue({ items: [] }); - - render(); - await openDiscoverHub(user); - - const searchInput = - await screen.findByPlaceholderText('搜索作品号、名称、作者、描述'); - await user.type(searchInput, 'M3-20260525'); - await user.click(screen.getByRole('button', { name: '搜索' })); - - expect(await screen.findByText('详情')).toBeTruthy(); - expect(screen.getByText('海底糖果集市')).toBeTruthy(); - await user.click(screen.getByRole('button', { name: '启动' })); - - await waitFor(() => { - expect(match3dLocalRuntimeAdapterMock.startRun).toHaveBeenCalledWith( - 'match3d-demo-20260525', - {}, - ); - }); - expect(match3dServerRuntimeAdapterMock.startRun).not.toHaveBeenCalled(); - expect(getMatch3DWorkDetail).not.toHaveBeenCalledWith( - 'match3d-demo-20260525', - ); - expect( - await screen.findByText('抓大鹅运行态:match3d-run-match3d-demo-20260525'), - ).toBeTruthy(); -}); - test('published Match3D runtime receives persisted generated models', async () => { const user = userEvent.setup(); const match3dWork: Match3DWorkSummary = { diff --git a/src/components/rpg-entry/RpgEntryHomeView.tsx b/src/components/rpg-entry/RpgEntryHomeView.tsx index abba2b10..8bcbe2b1 100644 --- a/src/components/rpg-entry/RpgEntryHomeView.tsx +++ b/src/components/rpg-entry/RpgEntryHomeView.tsx @@ -76,7 +76,6 @@ import type { WechatMiniProgramPayParams, WechatNativePayment, } from '../../../packages/shared/src/contracts/runtime'; -import { isMatch3DDemoProfileId } from '../../data/match3dDemoGalleryCard'; import type { HydratedSavedGameSnapshot } from '../../persistence/runtimeSnapshotTypes'; import { buildPublicWorkDetailUrl } from '../../routing/appPageRoutes'; import type { AuthUser } from '../../services/authService'; @@ -4296,19 +4295,13 @@ export function RpgEntryHomeView({ return; } - const firstCategoryGroup = - categoryGroups.find((group) => - group.entries.some((entry) => !isMatch3DDemoProfileId(entry.profileId)), - ) ?? categoryGroups[0]; + const firstCategoryGroup = categoryGroups[0]; const selectedCategoryGroup = categoryGroups.find((group) => group.tag === selectedCategoryTag) ?? null; if ( firstCategoryGroup && (!selectedCategoryGroup || (!hasManualCategoryTagSelectionRef.current && - selectedCategoryGroup.entries.every((entry) => - isMatch3DDemoProfileId(entry.profileId), - ) && firstCategoryGroup.tag !== selectedCategoryGroup.tag)) ) { setSelectedCategoryTag(firstCategoryGroup.tag); diff --git a/src/components/rpg-entry/rpgEntryWorldPresentation.test.ts b/src/components/rpg-entry/rpgEntryWorldPresentation.test.ts index 27f8a848..5c39a03b 100644 --- a/src/components/rpg-entry/rpgEntryWorldPresentation.test.ts +++ b/src/components/rpg-entry/rpgEntryWorldPresentation.test.ts @@ -10,7 +10,6 @@ import { formatPlatformWorldTime, isBarkBattleGalleryEntry, isEdutainmentGalleryEntry, - isMatch3DGalleryEntry, isVisualNovelGalleryEntry, isWoodenFishGalleryEntry, mapBabyObjectMatchDraftToPlatformGalleryCard, @@ -22,7 +21,6 @@ import { resolvePlatformPublicWorkCode, resolvePlatformWorldFallbackCoverImage, } from './rpgEntryWorldPresentation'; -import { buildMatch3DDemoGalleryCard } from '../../data/match3dDemoGalleryCard'; test('formatPlatformWorldTime formats backend seconds timestamp text as date', () => { expect(formatPlatformWorldTime('1777110165.990127Z')).toBe('2026-04-25'); @@ -80,24 +78,6 @@ test('platform public cards use play type reference images as cover fallback', ( ); }); -test('builds local Match3D demo gallery card with generated runtime assets intact', () => { - const card = buildMatch3DDemoGalleryCard(); - - expect(isMatch3DGalleryEntry(card)).toBe(true); - expect(card.publicWorkCode).toBe('M3-20260525'); - expect(resolvePlatformPublicWorkCode(card)).toBe('M3-20260525'); - expect(card.coverImageSrc).toBe( - '/match3d-demo/undersea-candy-market/level-scene.png', - ); - expect(card.generatedBackgroundAsset?.uiSpritesheetImageSrc).toBe( - '/match3d-demo/undersea-candy-market/ui-spritesheet.png', - ); - expect(card.generatedBackgroundAsset?.containerImageSrc).toBeNull(); - expect(card.generatedItemAssets?.[0]?.imageViews?.[0]?.imageSrc).toBe( - '/match3d-demo/undersea-candy-market/item-slices/item-01/view-01.png', - ); -}); - test('buildPuzzleWorkCoverSlides prefers each level formal image', () => { const slides = buildPuzzleWorkCoverSlides({ workId: 'work-1', diff --git a/src/data/match3dDemoGalleryCard.ts b/src/data/match3dDemoGalleryCard.ts deleted file mode 100644 index 533f6220..00000000 --- a/src/data/match3dDemoGalleryCard.ts +++ /dev/null @@ -1,141 +0,0 @@ -import type { - Match3DGeneratedBackgroundAsset, - Match3DGeneratedItemAsset, - Match3DWorkProfile, -} from '../../packages/shared/src/contracts/match3dWorks'; -import { buildMatch3DPublicWorkCode } from '../services/publicWorkCode'; -import type { PlatformMatch3DGalleryCard } from '../components/rpg-entry/rpgEntryWorldPresentation'; - -export const MATCH3D_DEMO_PROFILE_ID = 'match3d-demo-20260525'; -export const MATCH3D_DEMO_WORK_ID = 'match3d-demo-undersea-candy-market'; -export const MATCH3D_DEMO_PUBLIC_WORK_CODE = - buildMatch3DPublicWorkCode(MATCH3D_DEMO_PROFILE_ID); - -const MATCH3D_DEMO_ASSET_BASE = '/match3d-demo/undersea-candy-market'; -const MATCH3D_DEMO_PUBLISHED_AT = '2026-05-25T12:04:17.000+08:00'; -const MATCH3D_DEMO_ITEM_NAMES = [ - '海星糖', - '贝壳糖', - '珊瑚软糖', - '珍珠泡泡糖', - '海马棒棒糖', - '鱼尾果冻', - '水母棉花糖', - '螺旋饼干', - '海螺巧克力', - '贝珠马卡龙', - '珊瑚杯糕', - '星砂软糖', - '小鱼糖块', - '海草曲奇', - '泡泡杯', - '蓝莓珊瑚糖', - '迷你糖罐', - '珍珠饼', - '海浪甜甜圈', - '贝壳蛋糕', -] as const; - -export const MATCH3D_DEMO_BACKGROUND_ASSET: Match3DGeneratedBackgroundAsset = { - prompt: '海底糖果集市抓大鹅关卡背景', - levelScenePrompt: '海底糖果集市完整关卡画面', - levelSceneImageSrc: `${MATCH3D_DEMO_ASSET_BASE}/level-scene.png`, - imageSrc: `${MATCH3D_DEMO_ASSET_BASE}/background.png`, - uiSpritesheetPrompt: '海底糖果集市 UI 透明 spritesheet', - uiSpritesheetImageSrc: `${MATCH3D_DEMO_ASSET_BASE}/ui-spritesheet.png`, - itemSpritesheetPrompt: '海底糖果集市物品 10x10 透明 spritesheet', - itemSpritesheetImageSrc: `${MATCH3D_DEMO_ASSET_BASE}/item-spritesheet.png`, - containerImageSrc: null, - status: 'image_ready', -}; - -export function buildMatch3DDemoGeneratedItemAssets() { - return MATCH3D_DEMO_ITEM_NAMES.map( - (itemName, itemIndex) => { - const itemNumber = itemIndex + 1; - const paddedItemNumber = String(itemNumber).padStart(2, '0'); - return { - itemId: `match3d-item-${itemNumber}`, - itemName, - itemSize: - itemIndex < 4 ? '大' : itemIndex < 14 ? '中' : '小', - imageViews: Array.from({ length: 5 }, (_, viewIndex) => { - const viewNumber = viewIndex + 1; - return { - viewId: `view-${String(viewNumber).padStart(2, '0')}`, - viewIndex: viewNumber, - imageSrc: `${MATCH3D_DEMO_ASSET_BASE}/item-slices/item-${paddedItemNumber}/view-${String(viewNumber).padStart(2, '0')}.png`, - }; - }), - backgroundAsset: - itemIndex === 0 ? MATCH3D_DEMO_BACKGROUND_ASSET : null, - status: 'image_ready', - }; - }, - ); -} - -export function buildMatch3DDemoWorkProfile(): Match3DWorkProfile { - return { - workId: MATCH3D_DEMO_WORK_ID, - profileId: MATCH3D_DEMO_PROFILE_ID, - ownerUserId: 'official-match3d-demo', - sourceSessionId: 'match3d-demo-session-20260525', - gameName: '海底糖果集市', - themeText: '海底糖果集市', - summary: '在海底糖果集市里把同款甜点抓成三消。', - tags: ['抓大鹅', '海底糖果', '官方示例'], - coverImageSrc: `${MATCH3D_DEMO_ASSET_BASE}/level-scene.png`, - referenceImageSrc: null, - clearCount: 21, - difficulty: 8, - publicationStatus: 'published', - playCount: 0, - updatedAt: MATCH3D_DEMO_PUBLISHED_AT, - publishedAt: MATCH3D_DEMO_PUBLISHED_AT, - publishReady: true, - generationStatus: 'ready', - backgroundPrompt: MATCH3D_DEMO_BACKGROUND_ASSET.prompt, - backgroundImageSrc: MATCH3D_DEMO_BACKGROUND_ASSET.imageSrc, - backgroundImageObjectKey: null, - generatedBackgroundAsset: MATCH3D_DEMO_BACKGROUND_ASSET, - generatedItemAssets: buildMatch3DDemoGeneratedItemAssets(), - }; -} - -export function buildMatch3DDemoGalleryCard(): PlatformMatch3DGalleryCard { - const profile = buildMatch3DDemoWorkProfile(); - return { - sourceType: 'match3d', - workId: profile.workId, - profileId: profile.profileId, - sourceSessionId: profile.sourceSessionId, - publicWorkCode: MATCH3D_DEMO_PUBLIC_WORK_CODE, - ownerUserId: profile.ownerUserId, - authorDisplayName: '官方示例', - worldName: profile.gameName, - subtitle: '抓大鹅 · 资源管线示例', - summaryText: profile.summary, - coverImageSrc: profile.coverImageSrc ?? null, - themeTags: profile.tags, - playCount: profile.playCount, - remixCount: 0, - likeCount: 0, - recentPlayCount7d: 0, - visibility: 'published', - publishedAt: profile.publishedAt ?? null, - updatedAt: profile.updatedAt, - backgroundPrompt: profile.backgroundPrompt ?? null, - backgroundImageSrc: profile.backgroundImageSrc ?? null, - backgroundImageObjectKey: profile.backgroundImageObjectKey ?? null, - generatedBackgroundAsset: profile.generatedBackgroundAsset ?? null, - generatedItemAssets: profile.generatedItemAssets ?? [], - }; -} - -export const MATCH3D_DEMO_WORK_PROFILE = buildMatch3DDemoWorkProfile(); -export const MATCH3D_DEMO_GALLERY_CARD = buildMatch3DDemoGalleryCard(); - -export function isMatch3DDemoProfileId(profileId: string | null | undefined) { - return profileId?.trim() === MATCH3D_DEMO_PROFILE_ID; -} diff --git a/src/services/match3d-runtime/match3dRuntimeAdapter.test.ts b/src/services/match3d-runtime/match3dRuntimeAdapter.test.ts index ac40af0e..5a1951d4 100644 --- a/src/services/match3d-runtime/match3dRuntimeAdapter.test.ts +++ b/src/services/match3d-runtime/match3dRuntimeAdapter.test.ts @@ -117,15 +117,6 @@ test('local Match3D runtime adapter exposes the same runtime seam as the server expect(stopped.run.status).toBe('Stopped'); }); -test('local Match3D runtime adapter keeps the requested profile id on restart', async () => { - const adapter = createLocalMatch3DRuntimeAdapter({ clearCount: 1 }); - const started = await adapter.startRun('match3d-demo-20260525'); - const restarted = await adapter.restartRun(started.run.runId); - - expect(started.run.profileId).toBe('match3d-demo-20260525'); - expect(restarted.run.profileId).toBe('match3d-demo-20260525'); -}); - test('local Match3D runtime adapter keeps authority run local to the adapter', async () => { const adapter = createLocalMatch3DRuntimeAdapter({ initialRun: startLocalMatch3DRun(1) }); const first = await adapter.getRun('unused-run-id');