Update scene document to include terrains

This commit is contained in:
2026-04-18 19:44:12 +02:00
parent 56ca482cd2
commit 6e78d66a11

View File

@@ -27,8 +27,10 @@ import {
createEmptyProjectSequenceLibrary, createEmptyProjectSequenceLibrary,
type ProjectSequenceLibrary type ProjectSequenceLibrary
} from "../sequencer/project-sequences"; } from "../sequencer/project-sequences";
import type { Terrain } from "./terrains";
export const SCENE_DOCUMENT_VERSION = 64 as const; export const SCENE_DOCUMENT_VERSION = 65 as const;
export const AUTHORED_TERRAIN_FOUNDATION_SCENE_DOCUMENT_VERSION = 65 as const;
export const FOLLOW_ACTOR_PATH_SMOOTH_SCENE_DOCUMENT_VERSION = 64 as const; export const FOLLOW_ACTOR_PATH_SMOOTH_SCENE_DOCUMENT_VERSION = 64 as const;
export const NPC_DIALOGUE_LINE_SPEAKER_REMOVED_SCENE_DOCUMENT_VERSION = export const NPC_DIALOGUE_LINE_SPEAKER_REMOVED_SCENE_DOCUMENT_VERSION =
63 as const; 63 as const;
@@ -157,6 +159,7 @@ export interface ProjectScene {
editorPreferences: SceneEditorPreferences; editorPreferences: SceneEditorPreferences;
world: WorldSettings; world: WorldSettings;
brushes: Record<string, Brush>; brushes: Record<string, Brush>;
terrains: Record<string, Terrain>;
paths: Record<string, ScenePath>; paths: Record<string, ScenePath>;
modelInstances: Record<string, ModelInstance>; modelInstances: Record<string, ModelInstance>;
entities: Record<string, EntityInstance>; entities: Record<string, EntityInstance>;
@@ -187,6 +190,7 @@ export interface SceneDocument {
textures: Record<string, never>; textures: Record<string, never>;
assets: Record<string, ProjectAssetRecord>; assets: Record<string, ProjectAssetRecord>;
brushes: Record<string, Brush>; brushes: Record<string, Brush>;
terrains: Record<string, Terrain>;
paths: Record<string, ScenePath>; paths: Record<string, ScenePath>;
modelInstances: Record<string, ModelInstance>; modelInstances: Record<string, ModelInstance>;
entities: Record<string, EntityInstance>; entities: Record<string, EntityInstance>;
@@ -211,6 +215,7 @@ export function createEmptySceneDocument(
textures: {}, textures: {},
assets: {}, assets: {},
brushes: {}, brushes: {},
terrains: {},
paths: {}, paths: {},
modelInstances: {}, modelInstances: {},
entities: {}, entities: {},
@@ -237,6 +242,7 @@ export function createEmptyProjectScene(
), ),
world: overrides.world ?? createDefaultWorldSettings(), world: overrides.world ?? createDefaultWorldSettings(),
brushes: {}, brushes: {},
terrains: {},
paths: {}, paths: {},
modelInstances: {}, modelInstances: {},
entities: {}, entities: {},
@@ -318,6 +324,7 @@ export function createSceneDocumentFromProject(
textures: projectDocument.textures, textures: projectDocument.textures,
assets: projectDocument.assets, assets: projectDocument.assets,
brushes: scene.brushes, brushes: scene.brushes,
terrains: scene.terrains,
paths: scene.paths, paths: scene.paths,
modelInstances: scene.modelInstances, modelInstances: scene.modelInstances,
entities: scene.entities, entities: scene.entities,
@@ -345,6 +352,7 @@ export function createProjectDocumentFromSceneDocument(
editorPreferences: createDefaultSceneEditorPreferences(), editorPreferences: createDefaultSceneEditorPreferences(),
world: sceneDocument.world, world: sceneDocument.world,
brushes: sceneDocument.brushes, brushes: sceneDocument.brushes,
terrains: sceneDocument.terrains,
paths: sceneDocument.paths, paths: sceneDocument.paths,
modelInstances: sceneDocument.modelInstances, modelInstances: sceneDocument.modelInstances,
entities: sceneDocument.entities, entities: sceneDocument.entities,
@@ -380,6 +388,7 @@ export function applySceneDocumentToProject(
name: sceneDocument.name, name: sceneDocument.name,
world: sceneDocument.world, world: sceneDocument.world,
brushes: sceneDocument.brushes, brushes: sceneDocument.brushes,
terrains: sceneDocument.terrains,
paths: sceneDocument.paths, paths: sceneDocument.paths,
modelInstances: sceneDocument.modelInstances, modelInstances: sceneDocument.modelInstances,
entities: sceneDocument.entities, entities: sceneDocument.entities,