t2-model-skinner/src/Materials.tsx
2022-12-02 22:26:17 -08:00

32 lines
839 B
TypeScript

import getConfig from "next/config";
import Material, { MaterialDefinition } from "./Material";
import useModelViewer from "./useModelViewer";
import useWarrior from "./useWarrior";
const { publicRuntimeConfig } = getConfig();
const { materials } = publicRuntimeConfig;
export default function Materials() {
const { actualModel } = useWarrior();
const { model } = useModelViewer();
const materialDefs: MaterialDefinition[] = materials[actualModel];
return (
<>
{model.materials.map((material, i) => {
const materialDef =
materialDefs.find((materialDef) => materialDef.index === i) ??
materialDefs[i];
return (
<Material
key={material.name}
material={material}
materialDef={materialDef}
/>
);
})}
</>
);
}