Files
Genarrative/src/services/storyEngine/saveMigrationManifest.ts
高物 ddcb5d5c8c
Some checks failed
CI / verify (push) Has been cancelled
Rework story engine flow and reorganize project docs
2026-04-06 23:19:00 +08:00

37 lines
878 B
TypeScript

import type {
GameState,
SaveMigrationManifest,
} from '../../types';
import { createEmptyStoryEngineMemoryState } from './visibilityEngine';
export function buildSaveMigrationManifest(params: {
version: string;
}) {
return {
version: params.version,
requiredTransforms: [
'ensure_story_engine_memory',
'ensure_campaign_state',
'ensure_player_style_profile',
],
backwardCompatible: true,
} satisfies SaveMigrationManifest;
}
export function applyStoryEngineMigration(params: {
state: GameState;
manifest: SaveMigrationManifest;
}) {
const storyEngineMemory =
params.state.storyEngineMemory ?? createEmptyStoryEngineMemoryState();
return {
...params.state,
storyEngineMemory: {
...createEmptyStoryEngineMemoryState(),
...storyEngineMemory,
saveMigrationManifest: params.manifest,
},
};
}