Add migration logic for NPC targeting in scene and project documents
This commit is contained in:
@@ -6283,7 +6283,8 @@ export function migrateSceneDocument(source: unknown): SceneDocument {
|
||||
source.version !== PLAYER_START_EDGE_ASSIST_SCENE_DOCUMENT_VERSION &&
|
||||
source.version !== WHITEBOX_FACE_CLIMBABLE_SCENE_DOCUMENT_VERSION &&
|
||||
source.version !== FOLLOW_ACTOR_PATH_SMOOTH_SCENE_DOCUMENT_VERSION &&
|
||||
source.version !== ENTITY_TRANSFORMS_SCENE_DOCUMENT_VERSION
|
||||
source.version !== ENTITY_TRANSFORMS_SCENE_DOCUMENT_VERSION &&
|
||||
source.version !== NPC_TARGETING_SCENE_DOCUMENT_VERSION
|
||||
) {
|
||||
throw new Error(
|
||||
`Unsupported scene document version: ${String(source.version)}.`
|
||||
@@ -6303,7 +6304,7 @@ export function migrateSceneDocument(source: unknown): SceneDocument {
|
||||
}
|
||||
);
|
||||
|
||||
const migratedDocument: SceneDocument = {
|
||||
let migratedDocument: SceneDocument = {
|
||||
version: SCENE_DOCUMENT_VERSION,
|
||||
name: expectString(source.name, "name"),
|
||||
time: readProjectTimeSettings(source.time, "time", {
|
||||
@@ -6337,6 +6338,10 @@ export function migrateSceneDocument(source: unknown): SceneDocument {
|
||||
interactionLinks: readInteractionLinks(source.interactionLinks)
|
||||
};
|
||||
|
||||
if (source.version < NPC_TARGETING_SCENE_DOCUMENT_VERSION) {
|
||||
migratedDocument = migrateLegacySceneNpcTargetability(migratedDocument);
|
||||
}
|
||||
|
||||
return source.version < PROJECT_SCHEDULER_FOUNDATION_SCENE_DOCUMENT_VERSION
|
||||
? migrateLegacySceneNpcPresenceToScheduler(migratedDocument)
|
||||
: migratedDocument;
|
||||
@@ -6460,7 +6465,7 @@ export function migrateProjectDocument(source: unknown): ProjectDocument {
|
||||
);
|
||||
}
|
||||
|
||||
const migratedDocument: ProjectDocument = {
|
||||
let migratedDocument: ProjectDocument = {
|
||||
version: SCENE_DOCUMENT_VERSION,
|
||||
name: readProjectName(source.name, "name", {
|
||||
allowMissing: allowMissingProjectName
|
||||
@@ -6484,6 +6489,10 @@ export function migrateProjectDocument(source: unknown): ProjectDocument {
|
||||
foliagePrototypes: readFoliagePrototypes(source.foliagePrototypes, assets)
|
||||
};
|
||||
|
||||
if (source.version < NPC_TARGETING_SCENE_DOCUMENT_VERSION) {
|
||||
migratedDocument = migrateLegacyProjectNpcTargetability(migratedDocument);
|
||||
}
|
||||
|
||||
return source.version < PROJECT_SCHEDULER_FOUNDATION_SCENE_DOCUMENT_VERSION
|
||||
? migrateLegacyProjectNpcPresenceToScheduler(migratedDocument)
|
||||
: migratedDocument;
|
||||
|
||||
Reference in New Issue
Block a user