diff --git a/CUE4Parse b/CUE4Parse index 7423a772..efdb3872 160000 --- a/CUE4Parse +++ b/CUE4Parse @@ -1 +1 @@ -Subproject commit 7423a772c652d5bd957dd35c67ab5f6c39db63fc +Subproject commit efdb3872f392dfa5431e5646bf7f66229eb34afb diff --git a/FModel/Creator/Bases/FN/BaseCommunity.cs b/FModel/Creator/Bases/FN/BaseCommunity.cs index 78c2fe30..018ea547 100644 --- a/FModel/Creator/Bases/FN/BaseCommunity.cs +++ b/FModel/Creator/Bases/FN/BaseCommunity.cs @@ -35,7 +35,7 @@ namespace FModel.Creator.Bases.FN if (Object.TryGetValue(out FPackageIndex series, "Series") && Utils.TryGetPackageIndexExport(series, out UObject export)) _rarityName = export.Name; else - _rarityName = GetRarityName(Object.GetOrDefault("Rarity")); + _rarityName = Object.GetOrDefault("Rarity", EFortRarity.Uncommon).GetDescription(); if (Object.TryGetValue(out FGameplayTagContainer gameplayTags, "GameplayTags")) CheckGameplayTags(gameplayTags); @@ -108,44 +108,6 @@ namespace FModel.Creator.Bases.FN return number > 10 ? $"C{number / 10 + 1} S{s[^1..]}" : $"C1 S{s}"; } - private string GetRarityName(FName r) - { - var rarity = EFortRarity.Uncommon; - switch (r.Text) - { - case "EFortRarity::Common": - case "EFortRarity::Handmade": - rarity = EFortRarity.Common; - break; - case "EFortRarity::Rare": - case "EFortRarity::Sturdy": - rarity = EFortRarity.Rare; - break; - case "EFortRarity::Epic": - case "EFortRarity::Quality": - rarity = EFortRarity.Epic; - break; - case "EFortRarity::Legendary": - case "EFortRarity::Fine": - rarity = EFortRarity.Legendary; - break; - case "EFortRarity::Mythic": - case "EFortRarity::Elegant": - rarity = EFortRarity.Mythic; - break; - case "EFortRarity::Transcendent": - case "EFortRarity::Masterwork": - rarity = EFortRarity.Transcendent; - break; - case "EFortRarity::Unattainable": - case "EFortRarity::Badass": - rarity = EFortRarity.Unattainable; - break; - } - - return rarity.GetDescription(); - } - private new void DrawBackground(SKCanvas c) { if (_design.Rarities.TryGetValue(_rarityName, out var rarity)) diff --git a/FModel/Creator/Bases/FN/BaseIcon.cs b/FModel/Creator/Bases/FN/BaseIcon.cs index 525a7f80..84c48dd8 100644 --- a/FModel/Creator/Bases/FN/BaseIcon.cs +++ b/FModel/Creator/Bases/FN/BaseIcon.cs @@ -33,7 +33,7 @@ namespace FModel.Creator.Bases.FN { // rarity if (Object.TryGetValue(out FPackageIndex series, "Series")) GetSeries(series); - else GetRarity(Object.GetOrDefault("Rarity")); // default is uncommon + else GetRarity(Object.GetOrDefault("Rarity", EFortRarity.Uncommon)); // default is uncommon // preview if (isUsingDisplayAsset && Utils.TryGetDisplayAsset(Object, out var preview)) @@ -165,44 +165,11 @@ namespace FModel.Creator.Bases.FN } } - private void GetRarity(FName r) + private void GetRarity(EFortRarity r) { if (!Utils.TryLoadObject("FortniteGame/Content/Balance/RarityData.RarityData", out UObject export)) return; - var rarity = EFortRarity.Uncommon; - switch (r.Text) - { - case "EFortRarity::Common": - case "EFortRarity::Handmade": - rarity = EFortRarity.Common; - break; - case "EFortRarity::Rare": - case "EFortRarity::Sturdy": - rarity = EFortRarity.Rare; - break; - case "EFortRarity::Epic": - case "EFortRarity::Quality": - rarity = EFortRarity.Epic; - break; - case "EFortRarity::Legendary": - case "EFortRarity::Fine": - rarity = EFortRarity.Legendary; - break; - case "EFortRarity::Mythic": - case "EFortRarity::Elegant": - rarity = EFortRarity.Mythic; - break; - case "EFortRarity::Transcendent": - case "EFortRarity::Masterwork": - rarity = EFortRarity.Transcendent; - break; - case "EFortRarity::Unattainable": - case "EFortRarity::Badass": - rarity = EFortRarity.Unattainable; - break; - } - - if (export.GetByIndex((int) rarity) is { } data && + if (export.GetByIndex((int) r) is { } data && data.TryGetValue(out FLinearColor color1, "Color1") && data.TryGetValue(out FLinearColor color2, "Color2") && data.TryGetValue(out FLinearColor color3, "Color3")) diff --git a/FModel/Creator/Bases/FN/BaseIconStats.cs b/FModel/Creator/Bases/FN/BaseIconStats.cs index b1c44508..682f97d0 100644 --- a/FModel/Creator/Bases/FN/BaseIconStats.cs +++ b/FModel/Creator/Bases/FN/BaseIconStats.cs @@ -114,7 +114,7 @@ namespace FModel.Creator.Bases.FN weaponRowValue.TryGetValue(out UDataTable durabilityTable, "Durability") && weaponRowValue.TryGetValue(out FName durabilityRowName, "DurabilityRowName") && durabilityTable.TryGetDataTableRow(durabilityRowName.Text, StringComparison.OrdinalIgnoreCase, out var durability) && - durability.TryGetValue(out int duraByRarity, GetRarityName(Object.GetOrDefault("Rarity")))) + durability.TryGetValue(out int duraByRarity, Object.GetOrDefault("Rarity", EFortRarity.Uncommon).GetDescription())) { _statistics.Add(new IconStat(Utils.GetLocalizedResource("", "6FA2882140CB69DE32FD73A392F0585B", "Durability"), duraByRarity, 20)); } @@ -153,44 +153,6 @@ namespace FModel.Creator.Bases.FN return false; } - private string GetRarityName(FName r) - { - var rarity = EFortRarity.Uncommon; - switch (r.Text) - { - case "EFortRarity::Common": - case "EFortRarity::Handmade": - rarity = EFortRarity.Common; - break; - case "EFortRarity::Rare": - case "EFortRarity::Sturdy": - rarity = EFortRarity.Rare; - break; - case "EFortRarity::Epic": - case "EFortRarity::Quality": - rarity = EFortRarity.Epic; - break; - case "EFortRarity::Legendary": - case "EFortRarity::Fine": - rarity = EFortRarity.Legendary; - break; - case "EFortRarity::Mythic": - case "EFortRarity::Elegant": - rarity = EFortRarity.Mythic; - break; - case "EFortRarity::Transcendent": - case "EFortRarity::Masterwork": - rarity = EFortRarity.Transcendent; - break; - case "EFortRarity::Unattainable": - case "EFortRarity::Badass": - rarity = EFortRarity.Unattainable; - break; - } - - return rarity.GetDescription(); - } - private readonly SKPaint _informationPaint = new() { IsAntialias = true, FilterQuality = SKFilterQuality.High,