1
This commit is contained in:
@@ -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,
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user