Adds/updates documentation, assets and implementation for Match3D and puzzle image generation workflows. Key changes: decision logs and pitfalls updated to prefer VectorEngine Gemini for Match3D material sheets and to require edits (multipart) for 1:1 container reference images; guidance added for when to use APIMart vs VectorEngine. .env.example clarified APIMart/Responses config. Many new public assets and PPT visuals added. Code changes across frontend and backend: updated shared contracts, server-rs match3d/puzzle/image-generation handlers, VectorEngine/OpenAI image generation clients, and multiple React components/tests to handle UI/background/container image signing, edits workflow, and puzzle UI background resolution. Added src/services/puzzle-runtime/puzzleUiBackgroundSource.ts and related test updates. Includes notes about multipart HTTP/1.1 requirement and test/verification commands in docs.
3.4 KiB
3.4 KiB
作品货架统一 2026-04-25
背景
创作中心目前已经把 RPG、大鱼吃小鱼、拼图三类作品展示在同一个网格里,但前端组件仍直接消费三类原始 works:
- RPG 使用
status、title、subtitle、canEnterWorld。 - 大鱼使用
status、title、资源完成度字段。 - 拼图使用
publicationStatus、levelName、authorDisplayName、themeTags。
这导致筛选、计数、按钮文案、卡片标题、副标题、标签、删除忙碌态都在 UI 组件里做三套判断。后续再接新作品类型时,货架组件会继续膨胀。
目标
- 新增前端统一作品货架视图模型
CreationWorkShelfItem。 - 由归一化函数把 RPG / Big Fish / Puzzle works 映射成统一字段。
CustomWorldCreationHub只负责筛选、空态和动作分发。CustomWorldWorkCard只负责渲染统一字段,不再理解三类原始 schema。
非目标
- 本轮不新增后端统一 works 聚合接口。
- 不改变三类现有 works API contract。
- 不改变平台首页公开广场的 gallery 合并逻辑。
- 不改变删除、体验、恢复草稿的业务规则。
统一字段
CreationWorkShelfItem 至少包含:
id:稳定货架 id。kind:rpg | big-fish | puzzle。status:draft | published。title / subtitle / summary / updatedAt。coverImageSrc / coverRenderMode / coverCharacterImageSrcs。badges:状态、类型、阶段、标签等展示徽标。metrics:角色数、地点数、素材完成度、游玩数等底部指标。openActionLabel:卡片无障碍文案与主动作语义。source:保留原始 work,用于平台壳层执行动作。
验收
- 创作中心三类作品仍在同一个网格展示。
- 草稿 / 已发布筛选计数统一从
CreationWorkShelfItem.status读取。 - 卡片渲染不再直接判断
publicationStatus或不同 works schema 的标题字段。 - 统一货架按
updatedAt倒序排序,兼容 ISO 字符串和seconds.microsZ后端时间文本。 - 作品卡片以
coverImageSrc作为整卡背景;若coverImageSrc为空,允许从同一作品已有的关卡图、背景图或素材图兜底,避免草稿页退回普通面板视觉。 - 卡片不展示最后修改时间,
updatedAt只参与排序。 - 现有创作中心交互测试通过。
2026-05-14 封面兜底补充
- 货架视图模型仍只保存作品真实
coverImageSrc或同作品真实素材兜底,不把玩法参考图写进数据模型,避免把 UI 兜底误认为作品资产。 CustomWorldWorkCard按CreationWorkShelfKind为CustomWorldCoverArtwork传入本地玩法参考图;ResolvedAssetImage在私有资源换签失败、普通图片 404 或真实封面缺失时使用该参考图作为卡片背景。- 兜底背景底色跟随百梦浅粉、暖白和珊瑚色调,不能继续使用深黑或暗蓝渐变作为草稿卡默认视觉。
- 拼图作品列表摘要必须下发
levels,草稿页优先用关卡coverImageSrc,再用选中候选图或最后一张候选图作为真实作品封面兜底。 - 抓大鹅作品列表摘要必须保留
generatedBackgroundAsset与generatedItemAssets中的imageObjectKey、containerImageObjectKey和imageViews[].imageObjectKey;前端拿到 object key 后统一交给ResolvedAssetImage换签,不能因为缺少公开 URL 而退回黑卡。