feat: more mapping

This commit is contained in:
tresabhi committed 2025-02-01 21:51:43 -06:00
1 parent 8b0f95c53d
commit 09abbbadc9
3 files changed
+87 -6

No files matched your search

+2 -3
View File
@@ -40,10 +40,9 @@ namespace BlitzKit.CLI.Functions
{
var pdaName = $"PDA_{tankDir.Name}";
var pda = tankDir.GetUasset($"{pdaName}.uasset").Get(pdaName);
var tankId = pda.GetName("TankId");
Console.WriteLine(pda);
return new();
return new() { Id = tankId };
}
Dictionary<string, CrewType> CrewTypes = new()
+82
View File
@@ -0,0 +1,82 @@
using CUE4Parse.FileProvider;
using CUE4Parse.FileProvider.Objects;
using CUE4Parse.UE4.Assets.Exports;
using CUE4Parse.UE4.Assets.Objects;
using CUE4Parse.UE4.Assets.Objects.Properties;
using CUE4Parse.UE4.Objects.UObject;
namespace BlitzKit.CLI.Models
{
public class MappedUObject : UObject
{
readonly Dictionary<string, NameProperty> Names = [];
readonly Dictionary<string, SoftObjectProperty> SoftObjects = [];
readonly Dictionary<string, ObjectProperty> Objects = [];
readonly Dictionary<string, StructProperty> Structs = [];
readonly Dictionary<string, BoolProperty> Booleans = [];
readonly Dictionary<string, FloatProperty> Floats = [];
readonly Dictionary<string, ArrayProperty> Arrays = [];
public MappedUObject(List<FPropertyTag> properties)
: base(properties)
{
foreach (var property in properties)
{
switch (property.Tag)
{
case NameProperty name:
{
Names.Add(property.Name.Text, name);
break;
}
case SoftObjectProperty softObject:
{
SoftObjects.Add(property.Name.Text, softObject);
break;
}
case ObjectProperty obj:
{
Objects.Add(property.Name.Text, obj);
break;
}
case StructProperty structure:
{
Structs.Add(property.Name.Text, structure);
break;
}
case BoolProperty boolean:
{
Booleans.Add(property.Name.Text, boolean);
break;
}
case FloatProperty number:
{
Floats.Add(property.Name.Text, number);
break;
}
case ArrayProperty array:
{
Arrays.Add(property.Name.Text, array);
break;
}
default:
{
throw new Exception($"Unhandled property type: {property}");
}
}
}
}
public string GetName(string name)
{
return Names[name].Value.Text;
}
}
}
+3 -3
View File
@@ -7,7 +7,7 @@ namespace BlitzKit.CLI.Models
public class Uasset
{
readonly GameFile file;
readonly Dictionary<string, UObject> objects = [];
readonly Dictionary<string, MappedUObject> objects = [];
public Uasset(GameFile file, AbstractFileProvider provider)
{
@@ -16,10 +16,10 @@ namespace BlitzKit.CLI.Models
foreach (var obj in objects)
{
this.objects.Add(obj.Name, obj);
this.objects.Add(obj.Name, new(obj.Properties));
}
}
public UObject Get(string name) => objects[name];
public MappedUObject Get(string name) => objects[name];
}
}