updated the dungeon loading so it doesnt fail first try

This commit is contained in:
phenom committed 2026-08-17 13:51:12 -04:00
1 parent e39aebf3a1
commit 7e60864e70
11 files changed
+383 -69

No files matched your search

+13 -1
View File
@@ -1,6 +1,6 @@
import { useGLTF } from "@react-three/drei";
import { useThree } from "@react-three/fiber";
import { useCallback } from "react";
import { useCallback, useEffect, type ReactNode } from "react";
import type { WebGLRenderer } from "three";
import { KTX2Loader, type GLTFLoader } from "three-stdlib";
import { resolveContentUrl } from "../content/contentManager";
@@ -20,6 +20,18 @@ function ktx2LoaderFor(renderer: WebGLRenderer): KTX2Loader {
return loader;
}
/** Owns the decoder worker pool for one Canvas and releases it on renderer teardown. */
export function GameGltfLoaderLifecycle({ children }: { readonly children: ReactNode }) {
const renderer = useThree((state) => state.gl);
useEffect(() => () => {
const loader = ktx2Loaders.get(renderer);
if (!loader) return;
loader.dispose();
ktx2Loaders.delete(renderer);
}, [renderer]);
return children;
}
/**
* Loads shipped world and creature GLBs with Meshopt and KTX2 support.
* Keeping one KTX2Loader per renderer also keeps Three from creating a worker