import { Document, NodeIO } from "@gltf-transform/core"; import { ALL_EXTENSIONS } from "@gltf-transform/extensions"; import { applyRunewakerVisualUvAdaptations } from "./rom-visual-uv-adaptations.mjs"; import { applyRunewakerSurfaceQualityPolicies } from "./rom-surface-quality-policies.mjs"; export async function applyRunewakerVisualUvAdaptationsToFile(file, options) { const policyIds = options.policyIds ?? []; const surfaceQualityPolicyIds = options.surfaceQualityPolicyIds ?? []; if (!policyIds.length && !surfaceQualityPolicyIds.length) { return applyRunewakerVisualUvAdaptations(new Document(), { ...options, policyIds: [] }); } const io = new NodeIO().registerExtensions(ALL_EXTENSIONS); const document = await io.read(file); const visualUv = applyRunewakerVisualUvAdaptations(document, { ...options, policyIds }); const surfaceQuality = await applyRunewakerSurfaceQualityPolicies(document, { dungeonId: options.dungeonId, policyIds: surfaceQualityPolicyIds, sourceReport: options.sourceReport, }); await io.write(file, document); return { ...visualUv, surfaceQuality }; }