From ff0cac84e162752033c8a842bf2898768761f07a Mon Sep 17 00:00:00 2001 From: tresabhi <43380238+tresabhi@users.noreply.github.com> Date: Fri, 21 Mar 2025 15:49:58 -0500 Subject: [PATCH] feat: chassis mangler --- src/BlitzKit.CLI/Functions/Mangler.cs | 31 +++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/src/BlitzKit.CLI/Functions/Mangler.cs b/src/BlitzKit.CLI/Functions/Mangler.cs index 133478331..3ad1a3be4 100644 --- a/src/BlitzKit.CLI/Functions/Mangler.cs +++ b/src/BlitzKit.CLI/Functions/Mangler.cs @@ -223,9 +223,9 @@ namespace BlitzKit.CLI.Functions slug = MultipleDashesRegex().Replace(slug, "-"); slug = TrailingDashRegex().Replace(slug, ""); - // await MangleHull(pda); + await MangleHull(pda); // await MangleIcon(pda); - await MangleArmor(pda); + // await MangleArmor(pda); Tank tank = new() { @@ -312,14 +312,37 @@ namespace BlitzKit.CLI.Functions async Task MangleHull(UObject pda) { var id = PropertyUtil.Get(pda, "TankId").Text; - var hulls = PropertyUtil.Get(pda, "DT_Hulls"); - UDataTableUtility.TryGetDataTableRow(hulls, "hull", StringComparison.Ordinal, out var hull); + + var hullsDt = PropertyUtil.Get(pda, "DT_Hulls"); + var chassisDt = PropertyUtil.Get(pda, "DT_Chassis"); + + UDataTableUtility.TryGetDataTableRow(hullsDt, "hull", StringComparison.Ordinal, out var hull); + UDataTableUtility.TryGetDataTableRow( + chassisDt, + "chassis", + StringComparison.Ordinal, + out var chassis + ); + var hullVisualData = PropertyUtil.Get(hull, "VisualData"); + var chassisVisualData = PropertyUtil.Get(chassis, "VisualData"); + var hullMeshSettings = PropertyUtil.Get(hullVisualData, "MeshSettings"); + var chassisMeshSettings = PropertyUtil.Get( + chassisVisualData, + "MeshSettings" + ); + var hullCollision = PropertyUtil.Get(hullMeshSettings, "CollisionMesh"); + var chassisCollision = PropertyUtil.Get(chassisMeshSettings, "CollisionMesh"); + MonoGltf hullCollisionGltf = new(hullCollision); + MonoGltf chassisCollisionGltf = new(chassisCollision); await assetUploader.Add(new($"tanks/{id}/collision/hull.glb", hullCollisionGltf.Write())); + await assetUploader.Add( + new($"tanks/{id}/collision/chassis.glb", chassisCollisionGltf.Write()) + ); } } }