using System.Threading.Tasks; using ClusterVR.CreatorKit.ItemExporter.ExporterHooks; using UnityEngine; using VGltf; namespace ClusterVR.CreatorKit.ItemExporter { public sealed class CraftItemExporter : IItemExporter { static VGltf.Unity.Exporter CreateExporter() { var config = new VGltf.Unity.Exporter.Config(); var exporter = new VGltf.Unity.Exporter(config); exporter.AddHook(new ItemExporterHook()); exporter.Context.Exporters.Materials.AddHook(new LitMaterialExporterHook(config)); exporter.Context.Exporters.Nodes.AddHook(new ItemNodeExporterHook()); return exporter; } public GltfContainer ExportAsGltfContainer(GameObject go, bool isBeta) { using var exporter = CreateExporter(); return ItemExporter.ExportAsGltfContainer(go, exporter); } public async Task ExportAsync(GameObject go, bool isBeta) { using var exporter = CreateExporter(); return await ItemExporter.ExportAsync(go, exporter); } } }