mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-23 19:49:50 +02:00
feat: more mapping
This commit is contained in:
1 parent
8b0f95c53d
commit
09abbbadc9
3 files changed
+87
-6
No files matched your search
@@ -40,10 +40,9 @@ namespace BlitzKit.CLI.Functions
|
|||||||
{
|
{
|
||||||
var pdaName = $"PDA_{tankDir.Name}";
|
var pdaName = $"PDA_{tankDir.Name}";
|
||||||
var pda = tankDir.GetUasset($"{pdaName}.uasset").Get(pdaName);
|
var pda = tankDir.GetUasset($"{pdaName}.uasset").Get(pdaName);
|
||||||
|
var tankId = pda.GetName("TankId");
|
||||||
|
|
||||||
Console.WriteLine(pda);
|
return new() { Id = tankId };
|
||||||
|
|
||||||
return new();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Dictionary<string, CrewType> CrewTypes = new()
|
Dictionary<string, CrewType> CrewTypes = new()
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,7 +7,7 @@ namespace BlitzKit.CLI.Models
|
|||||||
public class Uasset
|
public class Uasset
|
||||||
{
|
{
|
||||||
readonly GameFile file;
|
readonly GameFile file;
|
||||||
readonly Dictionary<string, UObject> objects = [];
|
readonly Dictionary<string, MappedUObject> objects = [];
|
||||||
|
|
||||||
public Uasset(GameFile file, AbstractFileProvider provider)
|
public Uasset(GameFile file, AbstractFileProvider provider)
|
||||||
{
|
{
|
||||||
@@ -16,10 +16,10 @@ namespace BlitzKit.CLI.Models
|
|||||||
|
|
||||||
foreach (var obj in objects)
|
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];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user