mirror of
https://github.com/4sval/FModel.git
synced 2026-07-24 12:21:11 -05:00
improved 5c1b235c13
This commit is contained in:
parent
b714b97102
commit
bd6164e594
|
|
@ -2,23 +2,27 @@ using FModel.Methods.Utilities;
|
|||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using FProp = FModel.Properties.Settings;
|
||||
|
||||
namespace FModel.Methods.Assets.IconCreator.AthenaID
|
||||
{
|
||||
static class IconUserFacingFlags
|
||||
{
|
||||
private static JArray ItemCategoriesArray { get; set; }
|
||||
private static JArray HeroItemCategoriesArray { get; set; }
|
||||
private static JArray TertiaryCategoriesDataArray { get; set; }
|
||||
private static JArray SecondaryCategoriesDataArray { get; set; }
|
||||
public static int xCoords = 4 - 25;
|
||||
private const string PET_CUSTOM_ICON = "pack://application:,,,/Resources/T-Icon-Pets-64.png";
|
||||
private const string QUEST_CUSTOM_ICON = "pack://application:,,,/Resources/T-Icon-Quests-64.png";
|
||||
|
||||
public static void DrawUserFacingFlag(JToken uFF)
|
||||
{
|
||||
if (ItemCategoriesArray == null)
|
||||
if (TertiaryCategoriesDataArray == null)
|
||||
{
|
||||
string jsonData = AssetsUtility.GetAssetJsonDataByPath("/FortniteGame/Content/Items/ItemCategories", true);
|
||||
if (jsonData != null && AssetsUtility.IsValidJson(jsonData))
|
||||
|
|
@ -28,7 +32,7 @@ namespace FModel.Methods.Assets.IconCreator.AthenaID
|
|||
JToken tertiaryCategoriesToken = AssetsUtility.GetPropertyTag<JToken>(AssetArray[0]["properties"].Value<JArray>(), "TertiaryCategories");
|
||||
if (tertiaryCategoriesToken != null)
|
||||
{
|
||||
ItemCategoriesArray = tertiaryCategoriesToken["data"].Value<JArray>();
|
||||
TertiaryCategoriesDataArray = tertiaryCategoriesToken["data"].Value<JArray>();
|
||||
|
||||
string uFFTargeted = uFF.Value<string>().Substring("Cosmetics.UserFacingFlags.".Length);
|
||||
SearchUserFacingFlag(uFFTargeted);
|
||||
|
|
@ -44,7 +48,7 @@ namespace FModel.Methods.Assets.IconCreator.AthenaID
|
|||
|
||||
public static void DrawHeroFacingFlag(JToken uFF)
|
||||
{
|
||||
if (HeroItemCategoriesArray == null)
|
||||
if (SecondaryCategoriesDataArray == null)
|
||||
{
|
||||
string jsonData = AssetsUtility.GetAssetJsonDataByPath("/FortniteGame/Content/Items/ItemCategories", true);
|
||||
if (jsonData != null && AssetsUtility.IsValidJson(jsonData))
|
||||
|
|
@ -54,7 +58,7 @@ namespace FModel.Methods.Assets.IconCreator.AthenaID
|
|||
JToken secondaryCategoriesToken = AssetsUtility.GetPropertyTag<JToken>(AssetArray[0]["properties"].Value<JArray>(), "SecondaryCategories");
|
||||
if (secondaryCategoriesToken != null)
|
||||
{
|
||||
HeroItemCategoriesArray = secondaryCategoriesToken["data"].Value<JArray>();
|
||||
SecondaryCategoriesDataArray = secondaryCategoriesToken["data"].Value<JArray>();
|
||||
|
||||
string uFFTargeted = uFF.Value<string>().Substring("Unlocks.Class.".Length);
|
||||
SearchHeroFacingFlag(uFFTargeted);
|
||||
|
|
@ -68,9 +72,52 @@ namespace FModel.Methods.Assets.IconCreator.AthenaID
|
|||
}
|
||||
}
|
||||
|
||||
public static void DrawWeaponFacingFlag(JToken uFF)
|
||||
{
|
||||
if (SecondaryCategoriesDataArray == null)
|
||||
{
|
||||
string jsonData = AssetsUtility.GetAssetJsonDataByPath("/FortniteGame/Content/Items/ItemCategories", true);
|
||||
if (jsonData != null && AssetsUtility.IsValidJson(jsonData))
|
||||
{
|
||||
dynamic AssetData = JsonConvert.DeserializeObject(jsonData);
|
||||
JArray AssetArray = JArray.FromObject(AssetData);
|
||||
JToken secondaryCategoriesToken = AssetsUtility.GetPropertyTag<JToken>(AssetArray[0]["properties"].Value<JArray>(), "SecondaryCategories");
|
||||
if (secondaryCategoriesToken != null)
|
||||
{
|
||||
SecondaryCategoriesDataArray = secondaryCategoriesToken["data"].Value<JArray>();
|
||||
|
||||
string uFFTargeted = uFF.Value<string>();
|
||||
SearchWeaponFacingFlag(uFFTargeted);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string uFFTargeted = uFF.Value<string>();
|
||||
SearchWeaponFacingFlag(uFFTargeted);
|
||||
}
|
||||
}
|
||||
|
||||
private static void SearchWeaponFacingFlag(string uFFTarget)
|
||||
{
|
||||
foreach (JToken data in SecondaryCategoriesDataArray)
|
||||
{
|
||||
JArray propertiesArray = data["struct_type"]["properties"].Value<JArray>();
|
||||
if (propertiesArray != null)
|
||||
{
|
||||
JArray wTagsArray = AssetsUtility.GetPropertyTagStruct<JArray>(propertiesArray, "TagContainer", "gameplay_tags");
|
||||
if (wTagsArray != null)
|
||||
{
|
||||
if (wTagsArray.FirstOrDefault(i => i.Value<string>().ToLowerInvariant().Contains(uFFTarget.ToLowerInvariant())) != null)
|
||||
GetUFFImage(propertiesArray);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void SearchHeroFacingFlag(string uFFTarget)
|
||||
{
|
||||
foreach (JToken data in HeroItemCategoriesArray)
|
||||
foreach (JToken data in SecondaryCategoriesDataArray)
|
||||
{
|
||||
JArray propertiesArray = data["struct_type"]["properties"].Value<JArray>();
|
||||
if (propertiesArray != null)
|
||||
|
|
@ -90,7 +137,7 @@ namespace FModel.Methods.Assets.IconCreator.AthenaID
|
|||
|
||||
private static void SearchUserFacingFlag(string uFFTarget)
|
||||
{
|
||||
foreach (JToken data in ItemCategoriesArray)
|
||||
foreach (JToken data in TertiaryCategoriesDataArray)
|
||||
{
|
||||
JArray propertiesArray = data["struct_type"]["properties"].Value<JArray>();
|
||||
if (propertiesArray != null)
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ using FModel.Methods.Assets.IconCreator.HeroID;
|
|||
using FModel.Methods.Assets.IconCreator.WeaponID;
|
||||
using FModel.Methods.Utilities;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
|
|
@ -24,6 +25,7 @@ namespace FModel.Methods.Assets.IconCreator
|
|||
private static string _miniMapIconBrushPath;
|
||||
private static IEnumerable<JToken> _userFacingFlagsToken;
|
||||
private static IEnumerable<JToken> _userHeroFlagsToken;
|
||||
private static IEnumerable<JToken> _userWeaponFlagsToken;
|
||||
|
||||
public static void DrawIconText(JArray AssetProperties)
|
||||
{
|
||||
|
|
@ -45,6 +47,7 @@ namespace FModel.Methods.Assets.IconCreator
|
|||
_miniMapIconBrushPath = string.Empty;
|
||||
_userFacingFlagsToken = null;
|
||||
_userHeroFlagsToken = null;
|
||||
_userWeaponFlagsToken = null;
|
||||
|
||||
JToken name_namespace = AssetsUtility.GetPropertyTagText<JToken>(AssetProperties, "DisplayName", "namespace");
|
||||
JToken name_key = AssetsUtility.GetPropertyTagText<JToken>(AssetProperties, "DisplayName", "key");
|
||||
|
|
@ -64,7 +67,8 @@ namespace FModel.Methods.Assets.IconCreator
|
|||
|
||||
JArray gTagsArray = AssetsUtility.GetPropertyTagStruct<JArray>(AssetProperties, "GameplayTags", "gameplay_tags");
|
||||
JArray hTagsArray = AssetsUtility.GetPropertyTagStruct<JArray>(AssetProperties, "RequiredGPTags", "gameplay_tags");
|
||||
JArray wTagsArray = AssetsUtility.GetPropertyTagStruct<JArray>(AssetProperties, "MiniMapIconBrush", "properties");
|
||||
JArray wTagsArray = AssetsUtility.GetPropertyTagStruct<JArray>(AssetProperties, "AnalyticTags", "gameplay_tags");
|
||||
JArray MiniMapIconArray = AssetsUtility.GetPropertyTagStruct<JArray>(AssetProperties, "MiniMapIconBrush", "properties");
|
||||
|
||||
if (name_namespace != null && name_key != null && name_source_string != null)
|
||||
{
|
||||
|
|
@ -145,8 +149,10 @@ namespace FModel.Methods.Assets.IconCreator
|
|||
_userHeroFlagsToken = hTagsArray.Children<JToken>().Where(x => x.ToString().StartsWith("Unlocks.Class."));
|
||||
|
||||
if (wTagsArray != null)
|
||||
_userWeaponFlagsToken = wTagsArray.Children<JToken>().Where(x => x.ToString().StartsWith("Weapon.Ranged.", StringComparison.InvariantCultureIgnoreCase));
|
||||
else if (MiniMapIconArray != null)
|
||||
{
|
||||
JToken resourceObjectToken = AssetsUtility.GetPropertyTagOuterImport<JToken>(wTagsArray, "ResourceObject");
|
||||
JToken resourceObjectToken = AssetsUtility.GetPropertyTagOuterImport<JToken>(MiniMapIconArray, "ResourceObject");
|
||||
if (resourceObjectToken != null)
|
||||
_miniMapIconBrushPath = FoldersUtility.FixFortnitePath(resourceObjectToken.Value<string>());
|
||||
}
|
||||
|
|
@ -211,7 +217,16 @@ namespace FModel.Methods.Assets.IconCreator
|
|||
IconUserFacingFlags.xCoords = 4 - 25; //reset uFF coords
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(_miniMapIconBrushPath))
|
||||
if (_userWeaponFlagsToken != null)
|
||||
{
|
||||
foreach (JToken uFF in _userWeaponFlagsToken)
|
||||
{
|
||||
IconUserFacingFlags.DrawWeaponFacingFlag(uFF);
|
||||
}
|
||||
IconUserFacingFlags.xCoords = 4 - 25; //reset uFF coords
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(_miniMapIconBrushPath) && !_miniMapIconBrushPath.Contains("UI_Radar_EnemyDot_White"))
|
||||
using (System.IO.Stream image = AssetsUtility.GetStreamImageFromPath(_miniMapIconBrushPath))
|
||||
{
|
||||
if (image != null)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user