auto-git:
[change] src/document/scene-document.ts
This commit is contained in:
@@ -28,8 +28,15 @@ import {
|
|||||||
type ProjectSequenceLibrary
|
type ProjectSequenceLibrary
|
||||||
} from "../sequencer/project-sequences";
|
} from "../sequencer/project-sequences";
|
||||||
import type { Terrain } from "./terrains";
|
import type { Terrain } from "./terrains";
|
||||||
|
import {
|
||||||
|
createEmptyFoliageLayerRegistry,
|
||||||
|
createEmptyFoliagePrototypeRegistry,
|
||||||
|
type FoliageLayerRegistry,
|
||||||
|
type FoliagePrototypeRegistry
|
||||||
|
} from "../foliage/foliage";
|
||||||
|
|
||||||
export const SCENE_DOCUMENT_VERSION = 91 as const;
|
export const SCENE_DOCUMENT_VERSION = 92 as const;
|
||||||
|
export const FOLIAGE_FOUNDATION_SCENE_DOCUMENT_VERSION = 92 as const;
|
||||||
export const PLAYER_START_EDGE_ASSIST_SCENE_DOCUMENT_VERSION = 91 as const;
|
export const PLAYER_START_EDGE_ASSIST_SCENE_DOCUMENT_VERSION = 91 as const;
|
||||||
export const WHITEBOX_FACE_CLIMBABLE_SCENE_DOCUMENT_VERSION = 90 as const;
|
export const WHITEBOX_FACE_CLIMBABLE_SCENE_DOCUMENT_VERSION = 90 as const;
|
||||||
export const GOD_RAYS_SOURCE_SIZE_SCENE_DOCUMENT_VERSION = 89 as const;
|
export const GOD_RAYS_SOURCE_SIZE_SCENE_DOCUMENT_VERSION = 89 as const;
|
||||||
@@ -190,6 +197,7 @@ export interface ProjectScene {
|
|||||||
world: WorldSettings;
|
world: WorldSettings;
|
||||||
brushes: Record<string, Brush>;
|
brushes: Record<string, Brush>;
|
||||||
terrains: Record<string, Terrain>;
|
terrains: Record<string, Terrain>;
|
||||||
|
foliageLayers: FoliageLayerRegistry;
|
||||||
paths: Record<string, ScenePath>;
|
paths: Record<string, ScenePath>;
|
||||||
modelInstances: Record<string, ModelInstance>;
|
modelInstances: Record<string, ModelInstance>;
|
||||||
entities: Record<string, EntityInstance>;
|
entities: Record<string, EntityInstance>;
|
||||||
@@ -207,6 +215,7 @@ export interface ProjectDocument {
|
|||||||
materials: Record<string, MaterialDef>;
|
materials: Record<string, MaterialDef>;
|
||||||
textures: Record<string, never>;
|
textures: Record<string, never>;
|
||||||
assets: Record<string, ProjectAssetRecord>;
|
assets: Record<string, ProjectAssetRecord>;
|
||||||
|
foliagePrototypes: FoliagePrototypeRegistry;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SceneDocument {
|
export interface SceneDocument {
|
||||||
@@ -221,6 +230,8 @@ export interface SceneDocument {
|
|||||||
assets: Record<string, ProjectAssetRecord>;
|
assets: Record<string, ProjectAssetRecord>;
|
||||||
brushes: Record<string, Brush>;
|
brushes: Record<string, Brush>;
|
||||||
terrains: Record<string, Terrain>;
|
terrains: Record<string, Terrain>;
|
||||||
|
foliagePrototypes: FoliagePrototypeRegistry;
|
||||||
|
foliageLayers: FoliageLayerRegistry;
|
||||||
paths: Record<string, ScenePath>;
|
paths: Record<string, ScenePath>;
|
||||||
modelInstances: Record<string, ModelInstance>;
|
modelInstances: Record<string, ModelInstance>;
|
||||||
entities: Record<string, EntityInstance>;
|
entities: Record<string, EntityInstance>;
|
||||||
@@ -246,6 +257,8 @@ export function createEmptySceneDocument(
|
|||||||
assets: {},
|
assets: {},
|
||||||
brushes: {},
|
brushes: {},
|
||||||
terrains: {},
|
terrains: {},
|
||||||
|
foliagePrototypes: createEmptyFoliagePrototypeRegistry(),
|
||||||
|
foliageLayers: createEmptyFoliageLayerRegistry(),
|
||||||
paths: {},
|
paths: {},
|
||||||
modelInstances: {},
|
modelInstances: {},
|
||||||
entities: {},
|
entities: {},
|
||||||
@@ -273,6 +286,7 @@ export function createEmptyProjectScene(
|
|||||||
world: overrides.world ?? createDefaultWorldSettings(),
|
world: overrides.world ?? createDefaultWorldSettings(),
|
||||||
brushes: {},
|
brushes: {},
|
||||||
terrains: {},
|
terrains: {},
|
||||||
|
foliageLayers: createEmptyFoliageLayerRegistry(),
|
||||||
paths: {},
|
paths: {},
|
||||||
modelInstances: {},
|
modelInstances: {},
|
||||||
entities: {},
|
entities: {},
|
||||||
@@ -292,6 +306,7 @@ export function createEmptyProjectDocument(
|
|||||||
| "materials"
|
| "materials"
|
||||||
| "textures"
|
| "textures"
|
||||||
| "assets"
|
| "assets"
|
||||||
|
| "foliagePrototypes"
|
||||||
>
|
>
|
||||||
> & {
|
> & {
|
||||||
sceneId?: string;
|
sceneId?: string;
|
||||||
@@ -320,7 +335,9 @@ export function createEmptyProjectDocument(
|
|||||||
overrides.materials ?? createStarterMaterialRegistry()
|
overrides.materials ?? createStarterMaterialRegistry()
|
||||||
),
|
),
|
||||||
textures: overrides.textures ?? {},
|
textures: overrides.textures ?? {},
|
||||||
assets: overrides.assets ?? {}
|
assets: overrides.assets ?? {},
|
||||||
|
foliagePrototypes:
|
||||||
|
overrides.foliagePrototypes ?? createEmptyFoliagePrototypeRegistry()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -355,6 +372,8 @@ export function createSceneDocumentFromProject(
|
|||||||
assets: projectDocument.assets,
|
assets: projectDocument.assets,
|
||||||
brushes: scene.brushes,
|
brushes: scene.brushes,
|
||||||
terrains: scene.terrains,
|
terrains: scene.terrains,
|
||||||
|
foliagePrototypes: projectDocument.foliagePrototypes,
|
||||||
|
foliageLayers: scene.foliageLayers,
|
||||||
paths: scene.paths,
|
paths: scene.paths,
|
||||||
modelInstances: scene.modelInstances,
|
modelInstances: scene.modelInstances,
|
||||||
entities: scene.entities,
|
entities: scene.entities,
|
||||||
@@ -383,6 +402,7 @@ export function createProjectDocumentFromSceneDocument(
|
|||||||
world: sceneDocument.world,
|
world: sceneDocument.world,
|
||||||
brushes: sceneDocument.brushes,
|
brushes: sceneDocument.brushes,
|
||||||
terrains: sceneDocument.terrains,
|
terrains: sceneDocument.terrains,
|
||||||
|
foliageLayers: sceneDocument.foliageLayers,
|
||||||
paths: sceneDocument.paths,
|
paths: sceneDocument.paths,
|
||||||
modelInstances: sceneDocument.modelInstances,
|
modelInstances: sceneDocument.modelInstances,
|
||||||
entities: sceneDocument.entities,
|
entities: sceneDocument.entities,
|
||||||
@@ -391,7 +411,8 @@ export function createProjectDocumentFromSceneDocument(
|
|||||||
},
|
},
|
||||||
materials: sceneDocument.materials,
|
materials: sceneDocument.materials,
|
||||||
textures: sceneDocument.textures,
|
textures: sceneDocument.textures,
|
||||||
assets: sceneDocument.assets
|
assets: sceneDocument.assets,
|
||||||
|
foliagePrototypes: sceneDocument.foliagePrototypes
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -411,6 +432,7 @@ export function applySceneDocumentToProject(
|
|||||||
materials: sceneDocument.materials,
|
materials: sceneDocument.materials,
|
||||||
textures: sceneDocument.textures,
|
textures: sceneDocument.textures,
|
||||||
assets: sceneDocument.assets,
|
assets: sceneDocument.assets,
|
||||||
|
foliagePrototypes: sceneDocument.foliagePrototypes,
|
||||||
scenes: {
|
scenes: {
|
||||||
...projectDocument.scenes,
|
...projectDocument.scenes,
|
||||||
[sceneId]: {
|
[sceneId]: {
|
||||||
@@ -419,6 +441,7 @@ export function applySceneDocumentToProject(
|
|||||||
world: sceneDocument.world,
|
world: sceneDocument.world,
|
||||||
brushes: sceneDocument.brushes,
|
brushes: sceneDocument.brushes,
|
||||||
terrains: sceneDocument.terrains,
|
terrains: sceneDocument.terrains,
|
||||||
|
foliageLayers: sceneDocument.foliageLayers,
|
||||||
paths: sceneDocument.paths,
|
paths: sceneDocument.paths,
|
||||||
modelInstances: sceneDocument.modelInstances,
|
modelInstances: sceneDocument.modelInstances,
|
||||||
entities: sceneDocument.entities,
|
entities: sceneDocument.entities,
|
||||||
|
|||||||
Reference in New Issue
Block a user