Skip to content

Commit

Permalink
feat: hull collision mesh
Browse files Browse the repository at this point in the history
  • Loading branch information
tresabhi committed Feb 25, 2025
1 parent 63d27ae commit 57a2daa
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 28 deletions.
27 changes: 5 additions & 22 deletions src/BlitzKit.CLI/Functions/Mangler.cs
Original file line number Diff line number Diff line change
@@ -1,30 +1,10 @@
using System.Data;
using AssetRipper.TextureDecoder.Rgb.Channels;
using Blitzkit;

Check failure on line 2 in src/BlitzKit.CLI/Functions/Mangler.cs

View workflow job for this annotation

GitHub Actions / Download client

The type or namespace name 'Blitzkit' could not be found (are you missing a using directive or an assembly reference?)
using BlitzKit.CLI.Models;
using BlitzKit.CLI.Utils;
using CommunityToolkit.HighPerformance;
using CommunityToolkit.HighPerformance.Helpers;
using CUE4Parse;
using CUE4Parse_Conversion;
using CUE4Parse_Conversion.Animations;
using CUE4Parse_Conversion.Meshes;
using CUE4Parse_Conversion.Meshes.glTF;
using CUE4Parse_Conversion.Textures;
using CUE4Parse_Conversion.UEFormat.Enums;
using CUE4Parse.FileProvider.Objects;
using CUE4Parse.UE4.Assets.Exports;
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.Assets.Objects;
using CUE4Parse.UE4.Assets.Objects.Properties;
using CUE4Parse.UE4.Assets.Utils;
using CUE4Parse.UE4.Objects.UObject;
using CUE4Parse.UE4.Readers;
using CUE4Parse.UE4.Writers;
using CUE4Parse.Utils;
using Google.Protobuf.Collections;
using Newtonsoft.Json.Linq;

Expand Down Expand Up @@ -52,8 +32,8 @@ void MangleNation(VFS nation)
{
foreach (var tankDir in nation.Directories)
{
if (tankDir.Value.Name != "R90_IS_4")
continue;
// if (tankDir.Value.Name != "R90_IS_4")
// continue;

var tank = MangleTank(tankDir.Value);

Expand All @@ -73,6 +53,9 @@ void MangleNation(VFS nation)
var hullVisualData = PropertyUtil.Get<UObject>(hull, "VisualData");
var hullMeshSettings = PropertyUtil.Get<FStructFallback>(hullVisualData, "MeshSettings");
var hullCollision = PropertyUtil.Get<UStaticMesh>(hullMeshSettings, "CollisionMesh");
MonoGltf hullCollisionGltf = new(hullCollision);

hullCollisionGltf.Write();

return new() { Id = "" };
}
Expand Down
14 changes: 8 additions & 6 deletions src/BlitzKit.CLI/Models/MonoGltf.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,13 @@ namespace BlitzKit.CLI.Models

public class MonoGltf
{
readonly SceneBuilder Scene;

public MonoGltf(UStaticMesh staticMesh)
{
Scene = new(staticMesh.Name);
ExporterOptions options = new() { TextureFormat = ETextureFormat.Jpeg };
staticMesh.TryConvert(out var convertedMesh);
SceneBuilder sceneBuilder = new(staticMesh.Name);
var lod =
convertedMesh.LODs.Find(lod => !lod.SkipLod) ?? throw new Exception("Failed to find lod0");

Expand Down Expand Up @@ -155,13 +157,13 @@ texture is not UTexture2D texture2d
primitive.AddTriangle((v1, c1), (v2, c2), (v3, c3));
}

sceneBuilder.AddRigidMesh(meshBuilder, Matrix4x4.Identity);
Scene.AddRigidMesh(meshBuilder, Matrix4x4.Identity);
}
}

var gltf2 = sceneBuilder.ToGltf2();
var glbBytes = gltf2.WriteGLB();

File.WriteAllBytes("../../temp/test.glb", glbBytes);
public ArraySegment<byte> Write()
{
return Scene.ToGltf2().WriteGLB();
}

private static (
Expand Down

0 comments on commit 57a2daa

Please sign in to comment.