This commit is contained in:
2026-04-26 14:27:48 +08:00
parent f68f4914ec
commit ea33413187
155 changed files with 8130 additions and 1740 deletions

View File

@@ -340,13 +340,18 @@ function resolveSceneCardImage(params: {
return firstActImageSrc || params.sceneImageSrc?.trim() || '';
}
function collectSceneActImagePreviews(sceneChapters: SceneChapterBlueprint[]) {
function collectSceneActImagePreviews(
sceneChapters: SceneChapterBlueprint[],
sharedSceneImageSrc?: string | null,
) {
const sharedImageSrc = sharedSceneImageSrc?.trim() || '';
return sceneChapters.flatMap((chapter) =>
chapter.acts
.map((act, index) => ({
id: act.id.trim() || `${chapter.id}-act-${index}`,
title: act.title.trim() || `${index + 1}`,
imageSrc: act.backgroundImageSrc?.trim() || '',
imageSrc: sharedImageSrc || act.backgroundImageSrc?.trim() || '',
}))
.filter((act) => act.imageSrc),
);
@@ -356,8 +361,11 @@ function buildFallbackSceneActImagePreviews(params: {
sceneChapters: SceneChapterBlueprint[];
sceneImageSrc?: string | null;
}) {
const actPreviews = collectSceneActImagePreviews(params.sceneChapters);
const sceneImageSrc = params.sceneImageSrc?.trim() || '';
const actPreviews = collectSceneActImagePreviews(
params.sceneChapters,
sceneImageSrc,
);
if (actPreviews.length > 0 || !sceneImageSrc) {
return actPreviews;
@@ -778,8 +786,14 @@ export function CustomWorldEntityCatalog({
sceneId: landmark.id,
sceneName: landmark.name,
});
const firstActImageSrc =
sceneChapters
.flatMap((chapter) => chapter.acts)
.map((act) => act.backgroundImageSrc?.trim() || '')
.find(Boolean) || '';
const sceneImageSrc = resolveSceneCardImage({
sceneImageSrc: landmarkImageById.get(landmark.id) ?? landmark.imageSrc,
sceneImageSrc:
firstActImageSrc || landmarkImageById.get(landmark.id) || landmark.imageSrc,
sceneChapters,
});