Added GetAssetJsonDataByPath utility.

This commit is contained in:
MaikyM 2019-11-23 17:23:02 -06:00
parent 63925c1df2
commit c3ecfb4b39
12 changed files with 58 additions and 87 deletions

View File

@ -194,11 +194,9 @@ namespace FModel.Methods.Assets
public static void LoadAsset(string assetPath)
{
PakReader.PakReader reader = AssetsUtility.GetPakReader(assetPath);
if (reader != null)
string jsonData = AssetsUtility.GetAssetJsonDataByPath(assetPath, true);
if (jsonData != null)
{
List<FPakEntry> entriesList = AssetsUtility.GetPakEntries(assetPath);
string jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList, true);
FWindow.FMain.Dispatcher.InvokeAsync(() =>
{
FWindow.FMain.AssetPropertiesBox_Main.Text = jsonData;

View File

@ -1,4 +1,4 @@
using FModel.Methods.Utilities;
using FModel.Methods.Utilities;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using PakReader;
@ -16,11 +16,9 @@ namespace FModel.Methods.Assets.IconCreator.AthenaID
{
if (ItemSetsArray == null)
{
PakReader.PakReader reader = AssetsUtility.GetPakReader("/FortniteGame/Content/Athena/Items/Cosmetics/Metadata/CosmeticSets");
if (reader != null)
string jsonData = AssetsUtility.GetAssetJsonDataByPath("/FortniteGame/Content/Athena/Items/Cosmetics/Metadata/CosmeticSets", true);
if (jsonData != null)
{
List<FPakEntry> entriesList = AssetsUtility.GetPakEntries("/FortniteGame/Content/Athena/Items/Cosmetics/Metadata/CosmeticSets");
string jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList, true);
if (AssetsUtility.IsValidJson(jsonData))
{
dynamic AssetData = JsonConvert.DeserializeObject(jsonData);

View File

@ -1,4 +1,4 @@
using FModel.Methods.Utilities;
using FModel.Methods.Utilities;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using PakReader;
@ -19,11 +19,9 @@ namespace FModel.Methods.Assets.IconCreator.AthenaID
{
if (ItemCategoriesArray == null)
{
PakReader.PakReader reader = AssetsUtility.GetPakReader("/FortniteGame/Content/Items/ItemCategories");
if (reader != null)
string jsonData = AssetsUtility.GetAssetJsonDataByPath("/FortniteGame/Content/Items/ItemCategories", true);
if (jsonData != null)
{
List<FPakEntry> entriesList = AssetsUtility.GetPakEntries("/FortniteGame/Content/Items/ItemCategories");
string jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList, true);
if (AssetsUtility.IsValidJson(jsonData))
{
dynamic AssetData = JsonConvert.DeserializeObject(jsonData);
@ -138,4 +136,4 @@ namespace FModel.Methods.Assets.IconCreator.AthenaID
}
}
}
}
}

View File

@ -47,12 +47,9 @@ namespace FModel.Methods.Assets.IconCreator.ChallengeID
/// <param name="assetPath"></param>
private static void GetQuestData(JArray BundleProperties, string assetPath)
{
PakReader.PakReader reader = AssetsUtility.GetPakReader(assetPath);
if (reader != null)
string jsonData = AssetsUtility.GetAssetJsonDataByPath(assetPath);
if (jsonData != null)
{
List<FPakEntry> entriesList = AssetsUtility.GetPakEntries(assetPath);
string jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList);
if (AssetsUtility.IsValidJson(jsonData))
{
JToken AssetMainToken = AssetsUtility.ConvertJson2Token(jsonData);
@ -217,12 +214,9 @@ namespace FModel.Methods.Assets.IconCreator.ChallengeID
string rewardsTablePath = AssetEntries.AssetEntriesDict.Where(x => x.Key.ToLowerInvariant().Contains("/" + rewardsTable.Value<string>().ToLowerInvariant() + ".uasset")).Select(d => d.Key).FirstOrDefault();
if (!string.IsNullOrEmpty(rewardsTablePath))
{
reader = AssetsUtility.GetPakReader(rewardsTablePath.Substring(0, rewardsTablePath.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase)));
if (reader != null)
jsonData = AssetsUtility.GetAssetJsonDataByPath(rewardsTablePath.Substring(0, rewardsTablePath.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase)));
if (jsonData != null)
{
entriesList = AssetsUtility.GetPakEntries(rewardsTablePath.Substring(0, rewardsTablePath.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase)));
jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList);
if (AssetsUtility.IsValidJson(jsonData))
{
JToken AssetRewarsTableMainToken = AssetsUtility.ConvertJson2Token(jsonData);

View File

@ -63,12 +63,9 @@ namespace FModel.Methods.Assets.IconCreator.ChallengeID
string assetPath = AssetEntries.AssetEntriesDict.Where(x => x.Key.Contains("/BannerIcons.uasset")).Select(d => d.Key).FirstOrDefault();
if (!string.IsNullOrEmpty(assetPath))
{
PakReader.PakReader reader = AssetsUtility.GetPakReader(assetPath.Substring(0, assetPath.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase)));
if (reader != null)
string jsonData = AssetsUtility.GetAssetJsonDataByPath(assetPath.Substring(0, assetPath.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase)));
if (jsonData != null)
{
List<FPakEntry> entriesList = AssetsUtility.GetPakEntries(assetPath.Substring(0, assetPath.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase)));
string jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList);
if (AssetsUtility.IsValidJson(jsonData))
{
JToken AssetMainToken = AssetsUtility.ConvertJson2Token(jsonData);
@ -127,12 +124,9 @@ namespace FModel.Methods.Assets.IconCreator.ChallengeID
private static void DrawNormalIcon(string path, string quantity, int y, int mode = 0)
{
PakReader.PakReader reader = AssetsUtility.GetPakReader(path);
if (reader != null)
string jsonData = AssetsUtility.GetAssetJsonDataByPath(path);
if (jsonData != null)
{
List<FPakEntry> entriesList = AssetsUtility.GetPakEntries(path);
string jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList);
if (AssetsUtility.IsValidJson(jsonData))
{
JToken AssetMainToken = AssetsUtility.ConvertJson2Token(jsonData);
@ -189,12 +183,9 @@ namespace FModel.Methods.Assets.IconCreator.ChallengeID
private static void DrawImageFromTagData(string assetPath, string quantity, int y, int mode = 0)
{
PakReader.PakReader reader = AssetsUtility.GetPakReader(assetPath);
if (reader != null)
string jsonData = AssetsUtility.GetAssetJsonDataByPath(assetPath);
if (jsonData != null)
{
List<FPakEntry> entriesList = AssetsUtility.GetPakEntries(assetPath);
string jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList);
if (AssetsUtility.IsValidJson(jsonData))
{
JToken AssetMainToken = AssetsUtility.ConvertJson2Token(jsonData);

View File

@ -2,6 +2,7 @@ using FModel.Methods.Utilities;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using PakReader;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
@ -26,12 +27,10 @@ namespace FModel.Methods.Assets.IconCreator.HeroID
string assetPath = AssetEntries.AssetEntriesDict.Where(x => x.Key.ToLowerInvariant().Contains("/" + heroGameplayDefinitionToken.Value<string>().ToLowerInvariant() + ".")).Select(d => d.Key).FirstOrDefault();
if (!string.IsNullOrEmpty(assetPath))
{
PakReader.PakReader reader = AssetsUtility.GetPakReader(assetPath);
if (reader != null)
Console.WriteLine(assetPath);
string jsonData = AssetsUtility.GetAssetJsonDataByPath(assetPath, false, assetPath.Substring(0, assetPath.LastIndexOf(".")));
if (jsonData != null)
{
List<FPakEntry> entriesList = AssetsUtility.GetPakEntries(assetPath.Substring(0, assetPath.Length - ".uasset".Length));
string jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList);
if (AssetsUtility.IsValidJson(jsonData))
{
JToken AssetMainToken = AssetsUtility.ConvertJson2Token(jsonData);
@ -125,12 +124,9 @@ namespace FModel.Methods.Assets.IconCreator.HeroID
{
if (!string.IsNullOrEmpty(assetPath))
{
PakReader.PakReader reader = AssetsUtility.GetPakReader(assetPath);
if (reader != null)
string jsonData = AssetsUtility.GetAssetJsonDataByPath(assetPath);
if (jsonData != null)
{
List<FPakEntry> entriesList = AssetsUtility.GetPakEntries(assetPath);
string jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList);
if (AssetsUtility.IsValidJson(jsonData))
{
JToken AssetMainToken = AssetsUtility.ConvertJson2Token(jsonData);

View File

@ -70,12 +70,9 @@ namespace FModel.Methods.Assets.IconCreator
private static void DrawImageFromTagData(string assetPath)
{
PakReader.PakReader reader = AssetsUtility.GetPakReader(assetPath);
if (reader != null)
string jsonData = AssetsUtility.GetAssetJsonDataByPath(assetPath);
if (jsonData != null)
{
List<FPakEntry> entriesList = AssetsUtility.GetPakEntries(assetPath);
string jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList);
if (AssetsUtility.IsValidJson(jsonData))
{
JToken AssetMainToken = AssetsUtility.ConvertJson2Token(jsonData);
@ -143,12 +140,9 @@ namespace FModel.Methods.Assets.IconCreator
private static void DrawFeaturedImage(JArray AssetProperties, string displayAssetPath)
{
PakReader.PakReader reader = AssetsUtility.GetPakReader(displayAssetPath);
if (reader != null)
string jsonData = AssetsUtility.GetAssetJsonDataByPath(displayAssetPath);
if (jsonData != null)
{
List<FPakEntry> entriesList = AssetsUtility.GetPakEntries(displayAssetPath);
string jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList);
if (AssetsUtility.IsValidJson(jsonData))
{
FWindow.FCurrentAsset = Path.GetFileName(displayAssetPath);
@ -224,12 +218,9 @@ namespace FModel.Methods.Assets.IconCreator
renderSwitchPath.Contains("M-Wraps-StreetDemon") ||
renderSwitchPath.Contains("/FortniteGame/Content/UI/Foundation/Textures/Icons/Wraps/FeaturedMaterials/"))
{
PakReader.PakReader reader = AssetsUtility.GetPakReader(renderSwitchPath.Substring(0, renderSwitchPath.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase)));
if (reader != null)
string jsonData = AssetsUtility.GetAssetJsonDataByPath(renderSwitchPath.Substring(0, renderSwitchPath.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase)));
if (jsonData != null)
{
List<FPakEntry> entriesList = AssetsUtility.GetPakEntries(renderSwitchPath.Substring(0, renderSwitchPath.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase)));
string jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList);
if (AssetsUtility.IsValidJson(jsonData))
{
JToken AssetMainToken = AssetsUtility.ConvertJson2Token(jsonData);

View File

@ -154,13 +154,9 @@ namespace FModel.Methods.Assets.IconCreator
string seriesFullPath = AssetEntries.AssetEntriesDict.Where(x => x.Key.ToLowerInvariant().Contains("/" + serieToken.Value<string>().ToLowerInvariant() + ".uasset")).Select(d => d.Key).FirstOrDefault();
if (!string.IsNullOrEmpty(seriesFullPath))
{
string path = seriesFullPath.Substring(0, seriesFullPath.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase));
PakReader.PakReader reader = AssetsUtility.GetPakReader(path);
if (reader != null)
string jsonData = AssetsUtility.GetAssetJsonDataByPath(seriesFullPath.Substring(0, seriesFullPath.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase)));
if (jsonData != null)
{
List<FPakEntry> entriesList = AssetsUtility.GetPakEntries(path);
string jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList);
if (AssetsUtility.IsValidJson(jsonData))
{
JToken AssetMainToken = AssetsUtility.ConvertJson2Token(jsonData);

View File

@ -1,4 +1,4 @@
using FModel.Methods.Utilities;
using FModel.Methods.Utilities;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using PakReader;
@ -16,12 +16,9 @@ namespace FModel.Methods.Assets.IconCreator.WeaponID
{
public static void DrawIconAmmoData(string path)
{
PakReader.PakReader reader = AssetsUtility.GetPakReader(path);
if (reader != null)
string jsonData = AssetsUtility.GetAssetJsonDataByPath(path);
if (jsonData != null)
{
List<FPakEntry> entriesList = AssetsUtility.GetPakEntries(path);
string jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList);
if (AssetsUtility.IsValidJson(jsonData))
{
dynamic AssetData = JsonConvert.DeserializeObject(jsonData);

View File

@ -1,4 +1,4 @@
using FModel.Methods.Utilities;
using FModel.Methods.Utilities;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using PakReader;
@ -24,11 +24,9 @@ namespace FModel.Methods.Assets.IconCreator.WeaponID
string filepath = AssetEntries.AssetEntriesDict.Where(x => x.Key.Contains("/" + file + ".uasset")).Select(d => d.Key).FirstOrDefault();
if (!string.IsNullOrEmpty(filepath))
{
PakReader.PakReader reader = AssetsUtility.GetPakReader(filepath.Substring(0, filepath.LastIndexOf(".")));
if (reader != null)
string jsonData = AssetsUtility.GetAssetJsonDataByPath(filepath.Substring(0, filepath.LastIndexOf(".")), true);
if (jsonData != null)
{
List<FPakEntry> entriesList = AssetsUtility.GetPakEntries(filepath.Substring(0, filepath.LastIndexOf(".")));
string jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList, true);
if (AssetsUtility.IsValidJson(jsonData))
{
dynamic AssetData = JsonConvert.DeserializeObject(jsonData);

View File

@ -277,6 +277,20 @@ namespace FModel.Methods.Utilities
return string.Empty;
}
public static string GetAssetJsonDataByPath(string path, bool loadImageInBox = false, string pathEntries = null)
{
string jsonData = null;
PakReader.PakReader reader = GetPakReader(path);
if (reader != null)
{
List<FPakEntry> entriesList = GetPakEntries(pathEntries != null ? pathEntries : path);
if (entriesList != null)
jsonData = GetAssetJsonData(reader, entriesList, loadImageInBox);
}
return jsonData;
}
public static byte[] readSound(USoundWave sound)
{
if (!sound.bStreaming)
@ -421,6 +435,9 @@ namespace FModel.Methods.Utilities
public static bool IsValidJson(string strInput)
{
if (string.IsNullOrEmpty(strInput))
return false;
strInput = strInput.Trim();
if ((strInput.StartsWith("{") && strInput.EndsWith("}")) || //For object
(strInput.StartsWith("[") && strInput.EndsWith("]"))) //For array

View File

@ -125,12 +125,9 @@ namespace FModel.Methods.Utilities
string path = FoldersUtility.FixFortnitePath(displayImageToken["asset_path_name"].Value<string>());
if (string.Equals(path, "/FortniteGame/Content/Athena/UI/Challenges/Art/TileImages/M_UI_ChallengeTile_PCB"))
{
PakReader.PakReader reader = AssetsUtility.GetPakReader(path);
if (reader != null)
string jsonData = AssetsUtility.GetAssetJsonDataByPath(path);
if (jsonData != null)
{
List<FPakEntry> entriesList = AssetsUtility.GetPakEntries(path);
string jsonData = AssetsUtility.GetAssetJsonData(reader, entriesList);
if (AssetsUtility.IsValidJson(jsonData))
{
JToken AssetMainToken = AssetsUtility.ConvertJson2Token(jsonData);