Editor/HumanoidRetargeter/Embedded/ExtractionTypes.cs
// Minimal extraction-only adapters for the vendored VRF model exporter (MIT).
#nullable enable
using System;
using System.Collections.Generic;
using HumanoidRetargeterVrf.ResourceTypes;
namespace HumanoidRetargeterVrf.IO
{
public interface IFileLoader
{
Resource? LoadFile(string file);
Resource? LoadFileCompiled(string file);
}
public sealed class ContentFile : IDisposable
{
public byte[] Data { get; set; } = Array.Empty<byte>();
public string FileName { get; set; } = "";
public List<SubFile> SubFiles { get; } = new();
public void AddSubFile(string name, Func<byte[]> extract) => SubFiles.Add(new SubFile(name, extract));
public void Dispose() { }
}
public sealed record SubFile(string FileName, Func<byte[]> Extract);
internal static class FileExtract
{
internal static void EnsurePopulatedStringToken(IFileLoader loader) { }
}
}
namespace HumanoidRetargeterVrf.ResourceTypes
{
// Model/animation export only needs controller definitions from MRPH. The upstream
// DMX mesh exporter does not export vertex morph deltas. Keep source targets when possible.
public sealed class Morph(BlockType type) : KeyValuesOrNTRO(type, "MorphSetData_t")
{
public ModelFlex.FlexController[] FlexControllers => Array.Empty<ModelFlex.FlexController>();
}
}