Add validation for foliage quality settings in world document
This commit is contained in:
@@ -87,6 +87,11 @@ import {
|
|||||||
isAdvancedRenderingShadowType,
|
isAdvancedRenderingShadowType,
|
||||||
isBoxVolumeRenderPath,
|
isBoxVolumeRenderPath,
|
||||||
isAdvancedRenderingToneMappingMode,
|
isAdvancedRenderingToneMappingMode,
|
||||||
|
isFoliageQualityShadowMode,
|
||||||
|
MIN_FOLIAGE_QUALITY_DENSITY_MULTIPLIER,
|
||||||
|
MAX_FOLIAGE_QUALITY_DENSITY_MULTIPLIER,
|
||||||
|
MIN_FOLIAGE_QUALITY_MAX_DISTANCE_MULTIPLIER,
|
||||||
|
MAX_FOLIAGE_QUALITY_MAX_DISTANCE_MULTIPLIER,
|
||||||
isHexColorString,
|
isHexColorString,
|
||||||
isWorldShaderSkyPresetId,
|
isWorldShaderSkyPresetId,
|
||||||
type WorldCelestialOrbitAuthoringSettings,
|
type WorldCelestialOrbitAuthoringSettings,
|
||||||
@@ -1360,6 +1365,62 @@ function validateWorldSettings(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!isBoolean(advancedRendering.foliage.enabled)) {
|
||||||
|
diagnostics.push(
|
||||||
|
createDiagnostic(
|
||||||
|
"error",
|
||||||
|
"invalid-foliage-quality-enabled",
|
||||||
|
"Foliage quality enabled must be a boolean.",
|
||||||
|
"world.advancedRendering.foliage.enabled"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
!isFiniteNumberInRange(
|
||||||
|
advancedRendering.foliage.densityMultiplier,
|
||||||
|
MIN_FOLIAGE_QUALITY_DENSITY_MULTIPLIER,
|
||||||
|
MAX_FOLIAGE_QUALITY_DENSITY_MULTIPLIER
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
diagnostics.push(
|
||||||
|
createDiagnostic(
|
||||||
|
"error",
|
||||||
|
"invalid-foliage-quality-density-multiplier",
|
||||||
|
"Foliage density multiplier must be a finite number between 0 and 2.",
|
||||||
|
"world.advancedRendering.foliage.densityMultiplier"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
!isFiniteNumberInRange(
|
||||||
|
advancedRendering.foliage.maxDistanceMultiplier,
|
||||||
|
MIN_FOLIAGE_QUALITY_MAX_DISTANCE_MULTIPLIER,
|
||||||
|
MAX_FOLIAGE_QUALITY_MAX_DISTANCE_MULTIPLIER
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
diagnostics.push(
|
||||||
|
createDiagnostic(
|
||||||
|
"error",
|
||||||
|
"invalid-foliage-quality-max-distance-multiplier",
|
||||||
|
"Foliage max distance multiplier must be a finite number between 0.1 and 2.",
|
||||||
|
"world.advancedRendering.foliage.maxDistanceMultiplier"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isFoliageQualityShadowMode(advancedRendering.foliage.shadows)) {
|
||||||
|
diagnostics.push(
|
||||||
|
createDiagnostic(
|
||||||
|
"error",
|
||||||
|
"invalid-foliage-quality-shadows",
|
||||||
|
"Foliage shadows must be off, near, or full.",
|
||||||
|
"world.advancedRendering.foliage.shadows"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (!isBoxVolumeRenderPath(advancedRendering.fogPath)) {
|
if (!isBoxVolumeRenderPath(advancedRendering.fogPath)) {
|
||||||
diagnostics.push(
|
diagnostics.push(
|
||||||
createDiagnostic(
|
createDiagnostic(
|
||||||
|
|||||||
Reference in New Issue
Block a user