From 5c2bc9bd9494bcb37d59ca1ac7eb6dd1faafef67 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Sat, 2 May 2026 03:47:59 +0200 Subject: [PATCH] Support foliage layers in project scene creation and validate layer enabled status --- src/document/scene-document.ts | 9 +++++++-- src/foliage/foliage.ts | 4 ++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/document/scene-document.ts b/src/document/scene-document.ts index 017c9957..40675ba8 100644 --- a/src/document/scene-document.ts +++ b/src/document/scene-document.ts @@ -270,7 +270,12 @@ export function createEmptyProjectScene( overrides: Partial< Pick< ProjectScene, - "id" | "name" | "loadingScreen" | "editorPreferences" | "world" + | "id" + | "name" + | "loadingScreen" + | "editorPreferences" + | "world" + | "foliageLayers" > > = {} ): ProjectScene { @@ -286,7 +291,7 @@ export function createEmptyProjectScene( world: overrides.world ?? createDefaultWorldSettings(), brushes: {}, terrains: {}, - foliageLayers: createEmptyFoliageLayerRegistry(), + foliageLayers: overrides.foliageLayers ?? createEmptyFoliageLayerRegistry(), paths: {}, modelInstances: {}, entities: {}, diff --git a/src/foliage/foliage.ts b/src/foliage/foliage.ts index cff395fe..2a4a7554 100644 --- a/src/foliage/foliage.ts +++ b/src/foliage/foliage.ts @@ -318,6 +318,10 @@ export function cloneFoliageLayer(layer: FoliageLayer): FoliageLayer { ); } + if (typeof layer.enabled !== "boolean") { + throw new Error("Foliage layer enabled must be a boolean."); + } + return { id: normalizeNonEmptyString(layer.id, "Foliage layer id"), name: normalizeNonEmptyString(layer.name, "Foliage layer name"),