Implement state and logic for managing foliage layers

This commit is contained in:
2026-05-02 04:00:53 +02:00
parent ba67e22b47
commit 886a21aa9b

View File

@@ -2536,6 +2536,10 @@ export function App({ store, draftStorage = null, initialStatusMessage }: AppPro
const brushList = Object.values(editorState.document.brushes); const brushList = Object.values(editorState.document.brushes);
const terrainList = getTerrains(editorState.document.terrains); const terrainList = getTerrains(editorState.document.terrains);
const foliageLayerList = useMemo(
() => getFoliageLayerList(editorState.document.foliageLayers),
[editorState.document.foliageLayers]
);
const pathList = getScenePaths(editorState.document.paths); const pathList = getScenePaths(editorState.document.paths);
const layoutMode = editorState.viewportLayoutMode; const layoutMode = editorState.viewportLayoutMode;
const activePanelId = editorState.activeViewportPanelId; const activePanelId = editorState.activeViewportPanelId;
@@ -3200,6 +3204,22 @@ export function App({ store, draftStorage = null, initialStatusMessage }: AppPro
terrainLodGridVisibleTerrainIds, terrainLodGridVisibleTerrainIds,
setTerrainLodGridVisibleTerrainIds setTerrainLodGridVisibleTerrainIds
] = useState<readonly string[]>([]); ] = useState<readonly string[]>([]);
const [activeFoliageLayerId, setActiveFoliageLayerId] = useState<
string | null
>(null);
const activeFoliageLayer =
activeFoliageLayerId === null
? null
: (editorState.document.foliageLayers[activeFoliageLayerId] ?? null);
const [foliageLayerNameDraft, setFoliageLayerNameDraft] = useState("");
const [foliageLayerNumberDrafts, setFoliageLayerNumberDrafts] =
useState<FoliageLayerNumberDrafts>(() =>
createFoliageLayerNumberDrafts(
createFoliageLayer({
id: "foliage-layer-draft"
})
)
);
const selectedTerrainLodGridVisible = const selectedTerrainLodGridVisible =
selectedTerrain !== null && selectedTerrain !== null &&
terrainLodGridVisibleTerrainIds.includes(selectedTerrain.id); terrainLodGridVisibleTerrainIds.includes(selectedTerrain.id);