pkNX/pkNX.Containers/Trinity/TrinityUtil.cs
Kurt 0936c08eb1 LZA 1.0.2
Cumulative changes from the team.

Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
Co-Authored-By: SciresM <8676005+SciresM@users.noreply.github.com>
Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2025-11-16 15:56:12 -06:00

26 lines
677 B
C#

using System;
using static System.Buffers.Binary.BinaryPrimitives;
namespace pkNX.Containers;
public static class TrinityUtil
{
public static string GuessExtension(ReadOnlySpan<byte> data)
{
const string defaultExtension = "bin";
if (data.Length < 8)
return defaultExtension;
var u32 = ReadUInt32LittleEndian(data);
if (ReadUInt32LittleEndian(data[4..8]) == 0x53424642)
return "bfbs";
return u32 switch
{
AHTB.Magic => "ahtb",
0x43524153 => "sarc",
0x58544E42 => "bntx",
0x63726173 => "sarc",
_ => defaultExtension,
};
}
}