Add water surface displacement option in App and update document migration & validation

This commit is contained in:
2026-04-07 07:11:15 +02:00
parent e32c00e0ef
commit 66bb99b5ac
3 changed files with 39 additions and 3 deletions

View File

@@ -72,6 +72,7 @@ import {
SPATIAL_AUDIO_SCENE_DOCUMENT_VERSION,
SCENE_DOCUMENT_VERSION,
TRIGGER_ACTION_TARGET_FOUNDATION_SCENE_DOCUMENT_VERSION,
WATER_SURFACE_DISPLACEMENT_SCENE_DOCUMENT_VERSION,
WHITEBOX_BOX_VOLUME_SCENE_DOCUMENT_VERSION,
WHITEBOX_FLOAT_TRANSFORM_SCENE_DOCUMENT_VERSION,
WHITEBOX_GEOMETRY_SCENE_DOCUMENT_VERSION,
@@ -402,6 +403,11 @@ function readBoxBrushVolumeSettings(value: unknown, label: string): BoxBrushVolu
`${label}.water.foamContactLimit`,
defaults.foamContactLimit,
MAX_BOX_BRUSH_WATER_FOAM_CONTACT_LIMIT
),
surfaceDisplacementEnabled: readOptionalBoolean(
water.surfaceDisplacementEnabled,
`${label}.water.surfaceDisplacementEnabled`,
defaults.surfaceDisplacementEnabled
)
}
};
@@ -1720,6 +1726,7 @@ export function migrateSceneDocument(source: unknown): SceneDocument {
}
if (
source.version !== WATER_SURFACE_DISPLACEMENT_SCENE_DOCUMENT_VERSION &&
source.version !== WHITEBOX_BOX_VOLUME_SCENE_DOCUMENT_VERSION &&
source.version !== WHITEBOX_FLOAT_TRANSFORM_SCENE_DOCUMENT_VERSION &&
source.version !== WHITEBOX_GEOMETRY_SCENE_DOCUMENT_VERSION

View File

@@ -1434,6 +1434,17 @@ export function validateSceneDocument(document: SceneDocument): SceneDocumentVal
)
);
}
if (typeof water.surfaceDisplacementEnabled !== "boolean") {
diagnostics.push(
createDiagnostic(
"error",
"invalid-box-water-surface-displacement-enabled",
"Water surface displacement must be enabled or disabled explicitly.",
`${path}.volume.water.surfaceDisplacementEnabled`
)
);
}
}
}