Add foliage layer support to terrain brush stamps
This commit is contained in:
@@ -284,6 +284,7 @@ export function applyTerrainBrushStamp(options: {
|
|||||||
tool: TerrainBrushTool;
|
tool: TerrainBrushTool;
|
||||||
referenceHeight?: number | null;
|
referenceHeight?: number | null;
|
||||||
layerIndex?: number | null;
|
layerIndex?: number | null;
|
||||||
|
foliageLayerId?: string | null;
|
||||||
}): Terrain {
|
}): Terrain {
|
||||||
const nextTerrain = createTerrain(options.terrain);
|
const nextTerrain = createTerrain(options.terrain);
|
||||||
const result = applyTerrainBrushStampInPlace({
|
const result = applyTerrainBrushStampInPlace({
|
||||||
@@ -301,6 +302,7 @@ export function applyTerrainBrushStampInPlace(options: {
|
|||||||
tool: TerrainBrushTool;
|
tool: TerrainBrushTool;
|
||||||
referenceHeight?: number | null;
|
referenceHeight?: number | null;
|
||||||
layerIndex?: number | null;
|
layerIndex?: number | null;
|
||||||
|
foliageLayerId?: string | null;
|
||||||
}): TerrainBrushStampMutationResult {
|
}): TerrainBrushStampMutationResult {
|
||||||
const {
|
const {
|
||||||
terrain,
|
terrain,
|
||||||
@@ -308,7 +310,8 @@ export function applyTerrainBrushStampInPlace(options: {
|
|||||||
settings,
|
settings,
|
||||||
tool,
|
tool,
|
||||||
referenceHeight = null,
|
referenceHeight = null,
|
||||||
layerIndex = null
|
layerIndex = null,
|
||||||
|
foliageLayerId = null
|
||||||
} = options;
|
} = options;
|
||||||
const { radius, strength, falloff } = settings;
|
const { radius, strength, falloff } = settings;
|
||||||
const minSampleX = Math.max(
|
const minSampleX = Math.max(
|
||||||
@@ -461,9 +464,6 @@ export function applyTerrainBrushStampInPlace(options: {
|
|||||||
}
|
}
|
||||||
case "foliagePaint":
|
case "foliagePaint":
|
||||||
case "foliageErase": {
|
case "foliageErase": {
|
||||||
const foliageLayerId =
|
|
||||||
"foliageLayerId" in settings ? settings.foliageLayerId : null;
|
|
||||||
|
|
||||||
if (foliageLayerId === null) {
|
if (foliageLayerId === null) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
"Foliage terrain brush stamps require a foliage layer id."
|
"Foliage terrain brush stamps require a foliage layer id."
|
||||||
@@ -636,6 +636,11 @@ export function createTerrainBrushPatchFromTerrains(options: {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foliageMaskValues.sort(
|
||||||
|
(left, right) =>
|
||||||
|
left.layerId.localeCompare(right.layerId) || left.index - right.index
|
||||||
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
terrainId: before.id,
|
terrainId: before.id,
|
||||||
heightSamples,
|
heightSamples,
|
||||||
|
|||||||
Reference in New Issue
Block a user