Refine foliage mask logic and add support for foliage blocker masks

This commit is contained in:
2026-05-02 11:31:00 +02:00
parent bf127ab8f8
commit e977999cc5
2 changed files with 15 additions and 7 deletions

View File

@@ -6541,15 +6541,20 @@ export class ViewportHost {
}
private getTerrainFoliageMaskPreviewLayerId(terrainId: string): string | null {
const brushState = this.currentTerrainBrushState;
if (brushState === null || brushState.terrainId !== terrainId) {
return null;
}
if (
this.currentTerrainBrushState === null ||
this.currentTerrainBrushState.terrainId !== terrainId ||
!isTerrainFoliageLayerMaskTool(this.currentTerrainBrushState.tool)
brushState.tool !== "foliagePaint" &&
brushState.tool !== "foliageErase"
) {
return null;
}
return this.currentTerrainBrushState.foliageLayerId;
return brushState.foliageLayerId;
}
private isTerrainFoliageBlockerMaskPreviewActive(
@@ -9699,7 +9704,8 @@ export class ViewportHost {
tool: toolState.tool,
referenceHeight,
layerIndex: toolState.tool === "paint" ? toolState.layerIndex : null,
foliageLayerId: isTerrainFoliageLayerMaskTool(toolState.tool)
foliageLayerId:
toolState.tool === "foliagePaint" || toolState.tool === "foliageErase"
? toolState.foliageLayerId
: null
});

View File

@@ -177,7 +177,8 @@ describe("terrain commands", () => {
terrainId: terrain.id,
heightSamples: [{ index: 4, before: 0, after: 2 }],
paintWeights: [{ index: 1, before: 0, after: 0.5 }],
foliageMaskValues: []
foliageMaskValues: [],
foliageBlockerMaskValues: []
}
})
);
@@ -263,7 +264,8 @@ describe("terrain commands", () => {
before: 0,
after: 0.75
}
]
],
foliageBlockerMaskValues: []
}
})
);