better solution

This commit is contained in:
Karou 2025-09-19 13:51:08 -04:00
parent ad9eb89654
commit 992f9c2f01

View file

@ -19,6 +19,7 @@ using SharpGLTF.Scenes;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
namespace Penumbra.Import.Models;
using Schema2 = SharpGLTF.Schema2;
@ -33,6 +34,7 @@ public sealed class ModelManager(IFramework framework, MetaFileManager metaFileM
private bool _disposed;
public void Dispose()
{
_disposed = true;
@ -116,12 +118,15 @@ public sealed class ModelManager(IFramework framework, MetaFileManager metaFileM
//Lumina expects strings to be at least 15 chars, we assume it's not a vanilla material if its less than that as a temporary fix
string? absolutePath = null;
if (rawPath.Length > 14)
{
// Get standardised paths
absolutePath = rawPath.StartsWith('/')
? LuminaMaterial.ResolveRelativeMaterialPath(rawPath, variantId)
: rawPath;
if (Regex.IsMatch(rawPath, @"/mt_[cdmw]\d{4}[abefhtze]\d{4}_(?:\w{3}(?:_\w)|(?:\w))\.mtrl"))
{
absolutePath = LuminaMaterial.ResolveRelativeMaterialPath(rawPath, variantId);
}
else
{
absolutePath = rawPath;
}
var relativePath = rawPath.StartsWith('/')