diff --git a/CUE4Parse b/CUE4Parse index e69ae897..ffd48e77 160000 --- a/CUE4Parse +++ b/CUE4Parse @@ -1 +1 @@ -Subproject commit e69ae897396941b4daca9d26fb7ac5524c667dd2 +Subproject commit ffd48e7719e374580a74414785cdfc36e55c12dc diff --git a/FModel/Creator/Bases/FN/BaseIcon.cs b/FModel/Creator/Bases/FN/BaseIcon.cs index cd57824c..5b79b834 100644 --- a/FModel/Creator/Bases/FN/BaseIcon.cs +++ b/FModel/Creator/Bases/FN/BaseIcon.cs @@ -32,6 +32,7 @@ public class BaseIcon : UCreator // rarity if (Object.TryGetValue(out FPackageIndex series, "Series")) GetSeries(series); else if (Object.TryGetValue(out FStructFallback componentContainer, "ComponentContainer")) GetSeries(componentContainer); + else if (Object.TryGetValue(out EFortRarity hackRarity, "HackRarity")) GetRarity(hackRarity); else GetRarity(Object.GetOrDefault("Rarity", EFortRarity.Uncommon)); // default is uncommon if (Object.TryGetValue(out FInstancedStruct[] dataList, "DataList")) @@ -48,7 +49,7 @@ public class BaseIcon : UCreator Preview = preview; else if (Object.TryGetValue(out FPackageIndex itemDefinition, "HeroDefinition", "WeaponDefinition")) Preview = Utils.GetBitmap(itemDefinition); - else if (Object.TryGetValue(out FSoftObjectPath largePreview, "LargePreviewImage", "EntryListIcon", "SmallPreviewImage", "BundleImage", "ItemDisplayAsset", "LargeIcon", "ToastIcon", "SmallIcon")) + else if (Object.TryGetValue(out FSoftObjectPath largePreview, "LargePreviewImage", "EntryListIcon", "SmallPreviewImage", "BundleImage", "ItemDisplayAsset", "LargeIcon", "ToastIcon", "SmallIcon", "CartridgeIcon", "EffectIcon")) Preview = Utils.GetBitmap(largePreview); else if (Object.TryGetValue(out string s, "LargePreviewImage") && !string.IsNullOrEmpty(s)) Preview = Utils.GetBitmap(s); @@ -66,9 +67,9 @@ public class BaseIcon : UCreator } // text - if (Object.TryGetValue(out FText displayName, "DisplayName", "ItemName", "BundleName", "DefaultHeaderText", "UIDisplayName", "EntryName", "EventCalloutTitle")) + if (Object.TryGetValue(out FText displayName, "DisplayName", "ItemName", "BundleName", "DefaultHeaderText", "UIDisplayName", "EntryName", "EventCalloutTitle", "KeyName", "HackDisplayName")) DisplayName = displayName.Text; - if (Object.TryGetValue(out FText description, "Description", "ItemDescription", "SetDescription", "BundleDescription", "GeneralDescription", "DefaultBodyText", "UIDescription", "UIDisplayDescription", "EntryDescription", "EventCalloutDescription")) + if (Object.TryGetValue(out FText description, "Description", "ItemDescription", "SetDescription", "BundleDescription", "GeneralDescription", "DefaultBodyText", "UIDescription", "UIDisplayDescription", "EntryDescription", "EventCalloutDescription", "KeyDescription", "HackDescription")) Description = description.Text; else if (Object.TryGetValue(out FText[] descriptions, "Description")) Description = string.Join('\n', descriptions.Select(x => x.Text)); diff --git a/FModel/Creator/CreatorPackage.cs b/FModel/Creator/CreatorPackage.cs index 82f81427..aea95e5f 100644 --- a/FModel/Creator/CreatorPackage.cs +++ b/FModel/Creator/CreatorPackage.cs @@ -65,6 +65,7 @@ public class CreatorPackage : IDisposable case "AthenaEmojiItemDefinition": case "AthenaItemWrapDefinition": case "AthenaToyItemDefinition": + case "FortHackData": case "FortHeroType": case "FortTokenType": case "FortAbilityKit": @@ -72,7 +73,9 @@ public class CreatorPackage : IDisposable case "FortMissionInfo": case "RewardGraphToken": case "JunoKnowledgeBundle": + case "FortHackDataMinimal": case "FortBannerTokenType": + case "FortHackKeyCoreData": case "FortVariantTokenType": case "FortDecoItemDefinition": case "FortStatItemDefinition": @@ -88,6 +91,7 @@ public class CreatorPackage : IDisposable case "SparksBassItemDefinition": case "FortGadgetItemDefinition": case "AthenaCharmItemDefinition": + case "FortHackKeyItemDefinition": case "FortPlaysetItemDefinition": case "FortGiftBoxItemDefinition": case "FortOutpostItemDefinition": @@ -124,6 +128,7 @@ public class CreatorPackage : IDisposable case "JunoRecipeBundleItemDefinition": case "FortHomebaseNodeItemDefinition": case "FortNeverPersistItemDefinition": + case "FortHackCartridgeItemDefinition": case "FortPlayerAugmentItemDefinition": case "FortSmartBuildingItemDefinition": case "FortGiftBoxUnlockItemDefinition": diff --git a/FModel/Enums.cs b/FModel/Enums.cs index 24de8230..6d599d95 100644 --- a/FModel/Enums.cs +++ b/FModel/Enums.cs @@ -131,6 +131,7 @@ public enum EAssetCategory : uint CustomizableObject = Mesh + 3, NaniteDisplacedMesh = Mesh + 4, GeometryCollection = Mesh + 5, + ChaosClothAsset = Mesh + 6, Texture = AssetCategoryExtensions.CategoryBase + (3 << 16), Materials = AssetCategoryExtensions.CategoryBase + (4 << 16), Material = Materials + 1, @@ -167,6 +168,15 @@ public enum EAssetCategory : uint DeltaForce = GameSpecific + 4, LegoBatman = GameSpecific + 5, ArcSys = GameSpecific + 6, + GothamKnights = GameSpecific + 7, +} + +public enum EAssetFamily +{ + None, + Criware, + Wwise, + FMod, } public enum EUnluacMode diff --git a/FModel/Extensions/VisualTreeExtensions.cs b/FModel/Extensions/VisualTreeExtensions.cs index c898336f..1a54a808 100644 --- a/FModel/Extensions/VisualTreeExtensions.cs +++ b/FModel/Extensions/VisualTreeExtensions.cs @@ -11,7 +11,9 @@ public static class VisualTreeExtensions { if (current is T t) return t; - current = VisualTreeHelper.GetParent(current); + current = current is FrameworkContentElement contentElement + ? contentElement.Parent + : VisualTreeHelper.GetParent(current); } return null; } diff --git a/FModel/MainWindow.xaml b/FModel/MainWindow.xaml index e70d5552..706f3755 100644 --- a/FModel/MainWindow.xaml +++ b/FModel/MainWindow.xaml @@ -820,6 +820,33 @@ + + +