diff --git a/.gitmodules b/.gitmodules index fce342994..481aa1bbc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "submodules/blitzkit-closed"] path = submodules/blitzkit-closed url = https://github.com/tresabhi/blitzkit-closed +[submodule "submodules/CUE4Parse"] + path = submodules/CUE4Parse + url = https://github.com/FabianFG/CUE4Parse diff --git a/src/BlitzKit.CLI/BlitzKit.CLI.csproj b/src/BlitzKit.CLI/BlitzKit.CLI.csproj index 03c790e78..50d09a569 100644 --- a/src/BlitzKit.CLI/BlitzKit.CLI.csproj +++ b/src/BlitzKit.CLI/BlitzKit.CLI.csproj @@ -7,11 +7,11 @@ + - diff --git a/src/BlitzKit.CLI/Functions/Mangler.cs b/src/BlitzKit.CLI/Functions/Mangler.cs index 0a47b67ae..549a55bf0 100644 --- a/src/BlitzKit.CLI/Functions/Mangler.cs +++ b/src/BlitzKit.CLI/Functions/Mangler.cs @@ -1,8 +1,15 @@ using Blitzkit; using BlitzKit.CLI.Models; using BlitzKit.CLI.Utils; +using CUE4Parse_Conversion; +using CUE4Parse_Conversion.Animations; +using CUE4Parse_Conversion.Meshes; +using CUE4Parse_Conversion.Textures; +using CUE4Parse_Conversion.UEFormat.Enums; using CUE4Parse.UE4.Assets.Exports.Engine; +using CUE4Parse.UE4.Assets.Exports.Material; using CUE4Parse.UE4.Assets.Exports.StaticMesh; +using CUE4Parse.UE4.Assets.Exports.Texture; using CUE4Parse.UE4.Objects.UObject; using CUE4Parse.Utils; using Google.Protobuf.Collections; @@ -66,9 +73,21 @@ namespace BlitzKit.CLI.Functions var hullVisual = hull.GetObject("VisualData"); var hullMeshSettings = hullVisual.GetStruct("MeshSettings"); var hullMesh = hullMeshSettings.GetSoftObject("Mesh"); + MeshExporter hullMeshExporter = new( + hullMesh, + new() + { + MeshFormat = EMeshFormat.Gltf2, + ExportMaterials = true, + ExportMorphTargets = false, + LodFormat = ELodFormat.FirstLod, + TextureFormat = ETextureFormat.Jpeg, + SocketFormat = ESocketFormat.None, + Platform = ETexturePlatform.DesktopMobile, + } + ); - // var hullMesh = hullMeshSettings.GetSoftObject("Mesh"); - // GLB hullGlb = new(hullMesh); + hullMeshExporter.TryWriteToDir(new("../../temp"), out _, out _); return new() { Id = tankId }; } diff --git a/submodules/CUE4Parse b/submodules/CUE4Parse new file mode 160000 index 000000000..e45f85472 --- /dev/null +++ b/submodules/CUE4Parse @@ -0,0 +1 @@ +Subproject commit e45f85472248e38b35fae893fa1bf69851aa90eb