Test: Add test case for applying foliage blocker mask brush patches with undo and redo
This commit is contained in:
@@ -7,6 +7,7 @@ import { createUpsertTerrainCommand } from "../../src/commands/upsert-terrain-co
|
|||||||
import { createEmptySceneDocument } from "../../src/document/scene-document";
|
import { createEmptySceneDocument } from "../../src/document/scene-document";
|
||||||
import {
|
import {
|
||||||
createTerrain,
|
createTerrain,
|
||||||
|
getTerrainFoliageBlockerMaskValueAtSample,
|
||||||
getTerrainFoliageMask,
|
getTerrainFoliageMask,
|
||||||
getTerrainRenderDirtyBoundsSince
|
getTerrainRenderDirtyBoundsSince
|
||||||
} from "../../src/document/terrains";
|
} from "../../src/document/terrains";
|
||||||
@@ -293,4 +294,65 @@ describe("terrain commands", () => {
|
|||||||
)?.values[4]
|
)?.values[4]
|
||||||
).toBe(0.75);
|
).toBe(0.75);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("applies foliage blocker mask brush patches with undo and redo", () => {
|
||||||
|
const terrain = createTerrain({
|
||||||
|
id: "terrain-foliage-blocker-mask-command",
|
||||||
|
sampleCountX: 3,
|
||||||
|
sampleCountZ: 3
|
||||||
|
});
|
||||||
|
const store = createEditorStore({
|
||||||
|
initialDocument: {
|
||||||
|
...createEmptySceneDocument({ name: "Terrain Foliage Blocker Scene" }),
|
||||||
|
terrains: {
|
||||||
|
[terrain.id]: terrain
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
store.executeCommand(
|
||||||
|
createApplyTerrainBrushPatchCommand({
|
||||||
|
label: "Patch foliage blocker mask fixture",
|
||||||
|
patch: {
|
||||||
|
terrainId: terrain.id,
|
||||||
|
heightSamples: [],
|
||||||
|
paintWeights: [],
|
||||||
|
foliageMaskValues: [],
|
||||||
|
foliageBlockerMaskValues: [
|
||||||
|
{
|
||||||
|
index: 4,
|
||||||
|
before: 0,
|
||||||
|
after: 0.85
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(
|
||||||
|
getTerrainFoliageBlockerMaskValueAtSample(
|
||||||
|
store.getState().document.terrains[terrain.id]!.foliageBlockerMask,
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
)
|
||||||
|
).toBe(0.85);
|
||||||
|
|
||||||
|
expect(store.undo()).toBe(true);
|
||||||
|
expect(
|
||||||
|
getTerrainFoliageBlockerMaskValueAtSample(
|
||||||
|
store.getState().document.terrains[terrain.id]!.foliageBlockerMask,
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
)
|
||||||
|
).toBe(0);
|
||||||
|
|
||||||
|
expect(store.redo()).toBe(true);
|
||||||
|
expect(
|
||||||
|
getTerrainFoliageBlockerMaskValueAtSample(
|
||||||
|
store.getState().document.terrains[terrain.id]!.foliageBlockerMask,
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
)
|
||||||
|
).toBe(0.85);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user