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 !== PLAYER_START_EDGE_ASSIST_SCENE_DOCUMENT_VERSION &&
|
||||||
source.version !== WHITEBOX_FACE_CLIMBABLE_SCENE_DOCUMENT_VERSION &&
|
source.version !== WHITEBOX_FACE_CLIMBABLE_SCENE_DOCUMENT_VERSION &&
|
||||||
source.version !== FOLLOW_ACTOR_PATH_SMOOTH_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(
|
throw new Error(
|
||||||
`Unsupported scene document version: ${String(source.version)}.`
|
`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,
|
version: SCENE_DOCUMENT_VERSION,
|
||||||
name: expectString(source.name, "name"),
|
name: expectString(source.name, "name"),
|
||||||
time: readProjectTimeSettings(source.time, "time", {
|
time: readProjectTimeSettings(source.time, "time", {
|
||||||
@@ -6337,6 +6338,10 @@ export function migrateSceneDocument(source: unknown): SceneDocument {
|
|||||||
interactionLinks: readInteractionLinks(source.interactionLinks)
|
interactionLinks: readInteractionLinks(source.interactionLinks)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (source.version < NPC_TARGETING_SCENE_DOCUMENT_VERSION) {
|
||||||
|
migratedDocument = migrateLegacySceneNpcTargetability(migratedDocument);
|
||||||
|
}
|
||||||
|
|
||||||
return source.version < PROJECT_SCHEDULER_FOUNDATION_SCENE_DOCUMENT_VERSION
|
return source.version < PROJECT_SCHEDULER_FOUNDATION_SCENE_DOCUMENT_VERSION
|
||||||
? migrateLegacySceneNpcPresenceToScheduler(migratedDocument)
|
? migrateLegacySceneNpcPresenceToScheduler(migratedDocument)
|
||||||
: migratedDocument;
|
: migratedDocument;
|
||||||
@@ -6460,7 +6465,7 @@ export function migrateProjectDocument(source: unknown): ProjectDocument {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const migratedDocument: ProjectDocument = {
|
let migratedDocument: ProjectDocument = {
|
||||||
version: SCENE_DOCUMENT_VERSION,
|
version: SCENE_DOCUMENT_VERSION,
|
||||||
name: readProjectName(source.name, "name", {
|
name: readProjectName(source.name, "name", {
|
||||||
allowMissing: allowMissingProjectName
|
allowMissing: allowMissingProjectName
|
||||||
@@ -6484,6 +6489,10 @@ export function migrateProjectDocument(source: unknown): ProjectDocument {
|
|||||||
foliagePrototypes: readFoliagePrototypes(source.foliagePrototypes, assets)
|
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
|
return source.version < PROJECT_SCHEDULER_FOUNDATION_SCENE_DOCUMENT_VERSION
|
||||||
? migrateLegacyProjectNpcPresenceToScheduler(migratedDocument)
|
? migrateLegacyProjectNpcPresenceToScheduler(migratedDocument)
|
||||||
: migratedDocument;
|
: migratedDocument;
|
||||||
|
|||||||
Reference in New Issue
Block a user