From 3f54e467d81ce5063cd048ebb89d8ce918c62377 Mon Sep 17 00:00:00 2001 From: tresabhi <43380238+tresabhi@users.noreply.github.com> Date: Fri, 12 Jun 2026 14:17:29 -0500 Subject: [PATCH] names groups --- cspell.json | 4 +++- packages/game/JSExport/GameInterface.cs | 19 +++++++------------ packages/game/Models/MonoGltf.cs | 20 ++++++++++++++------ 3 files changed, 24 insertions(+), 19 deletions(-) diff --git a/cspell.json b/cspell.json index 76588bab0..29f356f50 100644 --- a/cspell.json +++ b/cspell.json @@ -10,7 +10,9 @@ "hocs", "cooldown", "Lods", - "Skia" + "Skia", + "RMAO", + "Verts" ], "userWords": [ "WOTB", diff --git a/packages/game/JSExport/GameInterface.cs b/packages/game/JSExport/GameInterface.cs index c1326ba97..6c695f0cf 100644 --- a/packages/game/JSExport/GameInterface.cs +++ b/packages/game/JSExport/GameInterface.cs @@ -255,28 +255,23 @@ public partial class GameInterface return gltf.Write($"{tag}/{part}"); } - static List CollectMeshes(FStructFallback settings) + static List<(string, UObject)> CollectMeshes(FStructFallback settings) { - var meshes = new List(); + var meshes = new List<(string, UObject)>(); foreach (var property in settings.Properties) { var key = property.Name.Text; - if (key == "CollisionMesh") - { - continue; - } - if (settings.TryGet(key, out var staticMesh)) { - meshes.Add(staticMesh); + meshes.Add((key, staticMesh)); continue; } if (settings.TryGet(key, out var skeletalMesh)) { - meshes.Add(skeletalMesh); + meshes.Add((key, skeletalMesh)); continue; } @@ -289,9 +284,9 @@ public partial class GameInterface continue; } - Console.WriteLine( - $"{key} -> {property.Tag} ({property.TagData}) [{property.PropertyTagFlags}]" - ); + // Console.WriteLine( + // $"{key} -> {property.Tag} ({property.TagData}) [{property.PropertyTagFlags}]" + // ); } return meshes; diff --git a/packages/game/Models/MonoGltf.cs b/packages/game/Models/MonoGltf.cs index 894e011db..8ab59e04c 100644 --- a/packages/game/Models/MonoGltf.cs +++ b/packages/game/Models/MonoGltf.cs @@ -42,12 +42,14 @@ public class MonoGltf }; readonly byte[] stubBytes = File.ReadAllBytes("../game/stub/small.png"); - public MonoGltf(List meshes) + public MonoGltf(List<(string, UObject)> meshes) { var materialMap = new Dictionary(); - foreach (var mesh in meshes) + foreach (var (key, mesh) in meshes) { + var group = new NodeBuilder(key); + if (mesh is UStaticMesh staticMesh) { staticMesh.TryConvert(out var convertedStaticMesh); @@ -56,7 +58,7 @@ public class MonoGltf foreach (var section in lod0.Sections!.Value) { - ParseSection(section, materialMap, lod0, lod0.Verts!); + scene.AddRigidMesh(ParseSection(section, materialMap, lod0, lod0.Verts!), group); } } else if (mesh is USkeletalMesh skeletalMesh) @@ -67,13 +69,19 @@ public class MonoGltf foreach (var section in lod0.Sections!.Value) { - ParseSection(section, materialMap, lod0, lod0.Verts!); + scene.AddRigidMesh(ParseSection(section, materialMap, lod0, lod0.Verts!), group); } } + else + { + continue; + } + + scene.AddNode(group); } } - void ParseSection( + ConfiguredMeshBuilder ParseSection( CMeshSection section, Dictionary materialMap, CBaseMeshLod lod, @@ -139,7 +147,7 @@ public class MonoGltf primitive.AddTriangle((v1, c1), (v2, c2), (v3, c3)); } - scene.AddRigidMesh(meshBuilder, Matrix4x4.Identity); + return meshBuilder; } public byte[] Write(string name)