Files
healer-man/src/game/dungeonAssetCache.ts
T
2026-08-14 15:56:39 -04:00

20 lines
717 B
TypeScript

import { useGLTF } from "@react-three/drei";
import { resolveContentUrl } from "../content/contentManager";
import { dungeonGltfUrls } from "./dungeonAssets";
import type { DungeonDefinition } from "./dungeonTypes";
export type DungeonGltfCacheRelease = (url: string) => void;
/**
* Removes every environment, collision, navigation, and creature GLB owned by
* a regular dungeon from Drei's global suspend-react loader cache.
*/
export function releaseDungeonGltfCache(
definition: DungeonDefinition,
release: DungeonGltfCacheRelease = (url) => useGLTF.clear(resolveContentUrl(url)),
): readonly string[] {
const urls = dungeonGltfUrls(definition);
for (const url of urls) release(url);
return urls;
}