public void TestCDOModification() { var tester = new UAsset(Path.Combine("TestManyAssets", "Astroneer", "Augment_BroadBrush.uasset"), UE4Version.VER_UE4_23); Assert.IsTrue(tester.VerifyBinaryEquality()); NormalExport cdoExport = null; foreach (Export testExport in tester.Exports) { if (testExport.ObjectFlags.HasFlag(EObjectFlags.RF_ClassDefaultObject)) { cdoExport = (NormalExport)testExport; break; } } Assert.IsNotNull(cdoExport); cdoExport["PickupActor"] = new ObjectPropertyData() { Value = FPackageIndex.FromRawIndex(0) }; Assert.IsTrue(cdoExport["PickupActor"] is ObjectPropertyData); Assert.IsTrue(((ObjectPropertyData)cdoExport["PickupActor"]).Value.Index == 0); }
public void TestCustomSerializationStructsInMap() { var tester = new UAsset(Path.Combine("TestCustomSerializationStructsInMap", "wtf.uasset"), UE4Version.VER_UE4_25); Assert.IsTrue(tester.VerifyBinaryEquality()); // Get the map property in export 2 Export exportTwo = FPackageIndex.FromRawIndex(2).ToExport(tester); Assert.IsTrue(exportTwo is NormalExport); NormalExport exportTwoNormal = (NormalExport)exportTwo; var mapPropertyName = FName.FromString("KekWait"); MapPropertyData testMap = exportTwoNormal[mapPropertyName] as MapPropertyData; Assert.IsNotNull(testMap); Assert.IsTrue(testMap == exportTwoNormal[mapPropertyName.Value.Value]); // Get the first entry of the map StructPropertyData entryKey = testMap?.Value?.Keys?.ElementAt(0) as StructPropertyData; StructPropertyData entryValue = testMap?.Value?[0] as StructPropertyData; Assert.IsNotNull(entryKey?.Value?[0]); Assert.IsNotNull(entryValue?.Value?[0]); // Check that the properties are correct Assert.IsTrue(entryKey.Value[0] is VectorPropertyData); Assert.IsTrue(entryValue.Value[0] is LinearColorPropertyData); }