forked from phenom/healer-man
23 lines
1.1 KiB
JavaScript
23 lines
1.1 KiB
JavaScript
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 };
|
|
}
|