auto-git:

[change] src/app/App.tsx
This commit is contained in:
2026-04-22 13:59:53 +02:00
parent 5eef950b2c
commit 6f4524a77c

View File

@@ -7057,52 +7057,69 @@ export function App({ store, initialStatusMessage }: AppProps) {
applyBoxVolumeSettings(
(currentVolume) => {
if (mode === "none") {
return {
mode: "none"
};
}
if (mode === "water") {
return currentVolume.mode === "water"
? currentVolume
: {
mode: "water",
water: {
colorHex: boxVolumeWaterColorDraft,
surfaceOpacity: readNonNegativeNumberDraft(
boxVolumeWaterSurfaceOpacityDraft,
"Water surface opacity"
),
waveStrength: readNonNegativeNumberDraft(
boxVolumeWaterWaveStrengthDraft,
"Water wave strength"
),
foamContactLimit: readWaterFoamContactLimitDraft(
boxVolumeWaterFoamContactLimitDraft
),
surfaceDisplacementEnabled:
boxVolumeWaterSurfaceDisplacementEnabledDraft
}
};
}
return currentVolume.mode === "fog"
? currentVolume
: {
mode: "fog",
fog: {
colorHex: boxVolumeFogColorDraft,
density: readNonNegativeNumberDraft(
boxVolumeFogDensityDraft,
"Fog density"
),
padding: readNonNegativeNumberDraft(
boxVolumeFogPaddingDraft,
"Fog padding"
)
}
switch (mode) {
case "none":
return {
mode: "none"
};
case "water":
return currentVolume.mode === "water"
? currentVolume
: {
mode: "water",
water: {
colorHex: boxVolumeWaterColorDraft,
surfaceOpacity: readNonNegativeNumberDraft(
boxVolumeWaterSurfaceOpacityDraft,
"Water surface opacity"
),
waveStrength: readNonNegativeNumberDraft(
boxVolumeWaterWaveStrengthDraft,
"Water wave strength"
),
foamContactLimit: readWaterFoamContactLimitDraft(
boxVolumeWaterFoamContactLimitDraft
),
surfaceDisplacementEnabled:
boxVolumeWaterSurfaceDisplacementEnabledDraft
}
};
case "fog":
return currentVolume.mode === "fog"
? currentVolume
: {
mode: "fog",
fog: {
colorHex: boxVolumeFogColorDraft,
density: readNonNegativeNumberDraft(
boxVolumeFogDensityDraft,
"Fog density"
),
padding: readNonNegativeNumberDraft(
boxVolumeFogPaddingDraft,
"Fog padding"
)
}
};
case "light":
return currentVolume.mode === "light"
? currentVolume
: {
mode: "light",
light: {
colorHex: boxVolumeLightColorDraft,
intensity: readNonNegativeNumberDraft(
boxVolumeLightIntensityDraft,
"Light intensity"
),
padding: readNonNegativeNumberDraft(
boxVolumeLightPaddingDraft,
"Light padding"
),
falloff: boxVolumeLightFalloffDraft
}
};
}
},
`Set box volume mode to ${mode}`,
`Set selected whitebox box volume mode to ${formatBoxVolumeModeLabel(mode)}.`
@@ -7227,6 +7244,61 @@ export function App({ store, initialStatusMessage }: AppProps) {
);
};
const resolveDraftBoxLightSettings = (
overrides: {
colorHex?: string;
intensity?: number;
padding?: number;
falloff?: BoxBrushLightFalloffMode;
} = {}
) => ({
colorHex: overrides.colorHex ?? boxVolumeLightColorDraft,
intensity:
overrides.intensity ??
readNonNegativeNumberDraft(boxVolumeLightIntensityDraft, "Light intensity"),
padding:
overrides.padding ??
readNonNegativeNumberDraft(boxVolumeLightPaddingDraft, "Light padding"),
falloff: overrides.falloff ?? boxVolumeLightFalloffDraft
});
const applyBoxLightSettings = (
overrides: {
colorHex?: string;
intensity?: number;
padding?: number;
falloff?: BoxBrushLightFalloffMode;
} = {}
) => {
if (selectedBrush === null || selectedBrush.volume.mode !== "light") {
return;
}
applyBoxVolumeSettings(
() => ({
mode: "light",
light: resolveDraftBoxLightSettings(overrides)
}),
"Set box light settings",
"Updated selected whitebox light settings."
);
};
const applyBoxLightColorDraft = (colorHex: string) => {
if (selectedBrush === null || selectedBrush.volume.mode !== "light") {
return;
}
applyBoxVolumeSettings(
() => ({
mode: "light",
light: resolveDraftBoxLightSettings({ colorHex })
}),
"Set box light color",
"Updated selected whitebox light color."
);
};
const commitEntityChange = (
currentEntity: EntityInstance,
nextEntity: EntityInstance,