This commit is contained in:
Ottermandias 2024-01-22 17:08:38 +01:00
parent 77762734d7
commit 7b1e28c2cf

View file

@ -198,7 +198,7 @@ internal unsafe partial record ResolveContext(
if (Global.Nodes.TryGetValue((path, (nint)resource), out var cached)) if (Global.Nodes.TryGetValue((path, (nint)resource), out var cached))
return cached; return cached;
var node = CreateNode(ResourceType.Mtrl, (nint)mtrl, &resource->ResourceHandle, path, false); var node = CreateNode(ResourceType.Mtrl, (nint)mtrl, &resource->ResourceHandle, path, false);
var shpkNode = CreateNodeFromShpk(resource->ShaderPackageResourceHandle, new ByteString(resource->ShpkName)); var shpkNode = CreateNodeFromShpk(resource->ShaderPackageResourceHandle, new ByteString(resource->ShpkName));
if (shpkNode != null) if (shpkNode != null)
{ {
@ -223,7 +223,7 @@ internal unsafe partial record ResolveContext(
string? name = null; string? name = null;
if (shpk != null) if (shpk != null)
{ {
var index = GetTextureIndex(mtrl, resource->Textures[i].Flags, alreadyProcessedSamplerIds); var index = GetTextureIndex(mtrl, resource->Textures[i].Flags, alreadyProcessedSamplerIds);
var samplerId = index != 0x001F var samplerId = index != 0x001F
? mtrl->Textures[index].Id ? mtrl->Textures[index].Id
: GetTextureSamplerId(mtrl, resource->Textures[i].TextureResourceHandle, alreadyProcessedSamplerIds); : GetTextureSamplerId(mtrl, resource->Textures[i].TextureResourceHandle, alreadyProcessedSamplerIds);
@ -280,7 +280,13 @@ internal unsafe partial record ResolveContext(
if (Global.Nodes.TryGetValue((path, (nint)sklb->SkeletonResourceHandle), out var cached)) if (Global.Nodes.TryGetValue((path, (nint)sklb->SkeletonResourceHandle), out var cached))
return cached; return cached;
return CreateNode(ResourceType.Sklb, (nint)sklb, (ResourceHandle*)sklb->SkeletonResourceHandle, path, false); var node = CreateNode(ResourceType.Sklb, (nint)sklb, (ResourceHandle*)sklb->SkeletonResourceHandle, path, false);
var skpNode = CreateParameterNodeFromPartialSkeleton(sklb, partialSkeletonIndex);
if (skpNode != null)
node.Children.Add(skpNode);
Global.Nodes.Add((path, (nint)sklb->SkeletonResourceHandle), node);
return node;
} }
private ResourceNode? CreateParameterNodeFromPartialSkeleton(PartialSkeleton* sklb, uint partialSkeletonIndex) private ResourceNode? CreateParameterNodeFromPartialSkeleton(PartialSkeleton* sklb, uint partialSkeletonIndex)
@ -293,7 +299,12 @@ internal unsafe partial record ResolveContext(
if (Global.Nodes.TryGetValue((path, (nint)sklb->SkeletonParameterResourceHandle), out var cached)) if (Global.Nodes.TryGetValue((path, (nint)sklb->SkeletonParameterResourceHandle), out var cached))
return cached; return cached;
return CreateNode(ResourceType.Skp, (nint)sklb, (ResourceHandle*)sklb->SkeletonParameterResourceHandle, path, false); var node = CreateNode(ResourceType.Skp, (nint)sklb, (ResourceHandle*)sklb->SkeletonParameterResourceHandle, path, false);
if (Global.WithUiData)
node.FallbackName = "Skeleton Parameters";
Global.Nodes.Add((path, (nint)sklb->SkeletonParameterResourceHandle), node);
return node;
} }
internal ResourceNode.UiData GuessModelUiData(Utf8GamePath gamePath) internal ResourceNode.UiData GuessModelUiData(Utf8GamePath gamePath)