diff --git a/FModel/FModel.csproj b/FModel/FModel.csproj
index bcdb84da..ccf46d94 100644
--- a/FModel/FModel.csproj
+++ b/FModel/FModel.csproj
@@ -5,7 +5,7 @@
Debug
AnyCPU
{71A31C47-30BC-4CB5-AD89-81E5008F4BEB}
- WinExe
+ Exe
FModel
FModel
v4.6.1
@@ -181,4 +181,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/FModel/PAKWindow.Designer.cs b/FModel/PAKWindow.Designer.cs
index 90fe0ff5..23accc06 100644
--- a/FModel/PAKWindow.Designer.cs
+++ b/FModel/PAKWindow.Designer.cs
@@ -55,6 +55,8 @@
this.ConsoleRichTextBox = new System.Windows.Forms.RichTextBox();
this.FilterLabel = new System.Windows.Forms.Label();
this.FilterTextBox = new System.Windows.Forms.TextBox();
+ this.loadAllPAKsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.groupBox1.SuspendLayout();
this.LoadContext.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.ItemIconPictureBox)).BeginInit();
@@ -92,14 +94,16 @@
//
this.LoadContext.ImageScalingSize = new System.Drawing.Size(18, 18);
this.LoadContext.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.loadAllPAKsToolStripMenuItem,
+ this.toolStripSeparator2,
this.optionsToolStripMenuItem});
this.LoadContext.Name = "LoadContext";
- this.LoadContext.Size = new System.Drawing.Size(117, 26);
+ this.LoadContext.Size = new System.Drawing.Size(181, 76);
//
// optionsToolStripMenuItem
//
this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
- this.optionsToolStripMenuItem.Size = new System.Drawing.Size(116, 22);
+ this.optionsToolStripMenuItem.Size = new System.Drawing.Size(151, 22);
this.optionsToolStripMenuItem.Text = "Options";
this.optionsToolStripMenuItem.Click += new System.EventHandler(this.optionsToolStripMenuItem_Click);
//
@@ -300,6 +304,18 @@
this.FilterTextBox.TabIndex = 5;
this.FilterTextBox.TextChanged += new System.EventHandler(this.FilterTextBox_TextChanged);
//
+ // loadAllPAKsToolStripMenuItem
+ //
+ this.loadAllPAKsToolStripMenuItem.Name = "loadAllPAKsToolStripMenuItem";
+ this.loadAllPAKsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.loadAllPAKsToolStripMenuItem.Text = "Load Them All";
+ this.loadAllPAKsToolStripMenuItem.Click += new System.EventHandler(this.loadAllPAKsToolStripMenuItem_Click);
+ //
+ // toolStripSeparator2
+ //
+ this.toolStripSeparator2.Name = "toolStripSeparator2";
+ this.toolStripSeparator2.Size = new System.Drawing.Size(148, 6);
+ //
// PAKWindow
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -358,6 +374,8 @@
private System.Windows.Forms.ToolStripMenuItem mergeGeneratedImagesToolStripMenuItem;
private System.Windows.Forms.ImageList TreeViewImageList;
private ScintillaNET.Scintilla scintilla1;
+ private System.Windows.Forms.ToolStripMenuItem loadAllPAKsToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
}
}
diff --git a/FModel/PAKWindow.cs b/FModel/PAKWindow.cs
index 1ed61191..2b1c1078 100644
--- a/FModel/PAKWindow.cs
+++ b/FModel/PAKWindow.cs
@@ -20,6 +20,7 @@ using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Text.RegularExpressions;
+using System.Text;
namespace FModel
{
@@ -27,10 +28,13 @@ namespace FModel
{
public static string docPath;
private static string[] PAKFileAsTXT;
+ private static string[] AllPAKs;
+ private static bool isAllPAKs;
private static string ItemName;
private static List afterItems;
public static string[] SelectedArray;
public static string[] challengesArray;
+ public static Dictionary AllPAKsDict;
public static Dictionary questStageDict;
public static Dictionary questDictFinal;
@@ -127,9 +131,11 @@ namespace FModel
else
{
IEnumerable yourPAKs = Directory.GetFiles(Properties.Settings.Default.FortnitePAKs).Where(x => x.EndsWith(".pak"));
+ AllPAKs = new string[yourPAKs.Count()];
for (int i = 0; i < yourPAKs.Count(); i++)
{
PAKsComboBox.Items.Add(Path.GetFileName(yourPAKs.ElementAt(i)));
+ AllPAKs[i] = Path.GetFileName(yourPAKs.ElementAt(i));
}
}
@@ -289,6 +295,7 @@ namespace FModel
private static string currentGUID;
private async void LoadButton_Click(object sender, EventArgs e)
{
+ isAllPAKs = false;
if (PAKsComboBox.SelectedItem == null)
{
AppendText("Please, select one of your ", Color.Black);
@@ -328,6 +335,176 @@ namespace FModel
}
}
}
+ private async void loadAllPAKsToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ Stopwatch stopWatch = new Stopwatch();
+ stopWatch.Start();
+
+ isAllPAKs = true;
+ AllPAKsDict = new Dictionary();
+ PAKTreeView.Nodes.Clear();
+ ItemsListBox.Items.Clear();
+ File.WriteAllText("key.txt", AESKeyTextBox.Text.Substring(2));
+
+ LoadButton.Enabled = false;
+ for (int i = 0; i < AllPAKs.Count(); i++)
+ {
+ currentPAK = AllPAKs[i];
+ currentGUID = readPAKGuid(Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK);
+ if (currentGUID == "0-0-0-0")
+ {
+ AppendText("✔ ", Color.Green);
+ AppendText("Loading ", Color.Black);
+ AppendText(currentPAK, Color.DarkRed, true);
+ await Task.Run(() => {
+ jwpmProcess("filelist \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + docPath + "\"");
+ });
+ if (!File.Exists(docPath + "\\" + currentPAK + ".txt"))
+ {
+ AppendText("✗ ", Color.Red);
+ AppendText(" Can't read ", Color.Black);
+ AppendText(currentPAK, Color.SteelBlue);
+ AppendText(" with this key", Color.Black, true);
+ }
+ else
+ {
+ if (!File.Exists(docPath + "\\FortnitePAKs_Temp.txt"))
+ {
+ File.Create(docPath + "\\FortnitePAKs_Temp.txt").Dispose();
+ }
+
+ string[] arr = File.ReadAllLines(docPath + "\\" + currentPAK + ".txt");
+ for (int ii = 0; ii < arr.Length; ii++)
+ {
+ string filename = arr[ii].Substring(arr[ii].LastIndexOf("/") + 1);
+ if (filename.Contains(".uasset") || filename.Contains(".uexp") || filename.Contains(".ubulk"))
+ {
+ if (!AllPAKsDict.ContainsKey(filename.Substring(0, filename.LastIndexOf("."))))
+ {
+ AllPAKsDict.Add(filename.Substring(0, filename.LastIndexOf(".")), currentPAK);
+ }
+ }
+ else
+ {
+ if (!AllPAKsDict.ContainsKey(filename))
+ {
+ AllPAKsDict.Add(filename, currentPAK);
+ }
+ }
+ }
+ File.AppendAllText(docPath + "\\FortnitePAKs_Temp.txt", File.ReadAllText(docPath + "\\" + currentPAK + ".txt"));
+ File.Delete(docPath + "\\" + currentPAK + ".txt");
+ }
+ }
+ }
+ if (File.Exists(docPath + "\\FortnitePAKs_Temp.txt"))
+ {
+ string[] arr = File.ReadAllLines(docPath + "\\FortnitePAKs_Temp.txt");
+ File.Delete(docPath + "\\FortnitePAKs_Temp.txt");
+ AppendText("Fixing paths... Please wait ", Color.Black, true);
+ await Task.Run(() => {
+ for (int i = 0; i < arr.Length; i++)
+ {
+ if (arr[i].StartsWith("Athena") ||
+ arr[i].StartsWith("Balance") ||
+ arr[i].StartsWith("Characters") ||
+ arr[i].StartsWith("Banners") ||
+ arr[i].StartsWith("Building") ||
+ arr[i].StartsWith("Blueprints") ||
+ arr[i].StartsWith("ArtTools") ||
+ arr[i].StartsWith("Catalog") ||
+ arr[i].StartsWith("Animation") ||
+ arr[i].StartsWith("Effects") ||
+ arr[i].StartsWith("Environments") ||
+ arr[i].StartsWith("Characters") ||
+ arr[i].StartsWith("CharClasses") ||
+ arr[i].StartsWith("ContentCreationTools") ||
+ arr[i].StartsWith("DeathPenalty") ||
+ arr[i].StartsWith("CollectionBook") ||
+ arr[i].StartsWith("CommandConsole") ||
+ arr[i].StartsWith("Creative") ||
+ arr[i].StartsWith("DeployableBases") ||
+ arr[i].StartsWith("GameplayCueNotifies") ||
+ arr[i].StartsWith("Items") ||
+ arr[i].StartsWith("Missions") ||
+ arr[i].StartsWith("GameplayEffectTemplates") ||
+ arr[i].StartsWith("Heroes") ||
+ arr[i].StartsWith("GameplayCurves") ||
+ arr[i].StartsWith("Packages") ||
+ arr[i].StartsWith("FortressPhysicalMaterials") ||
+ arr[i].StartsWith("Expeditions") ||
+ arr[i].StartsWith("Gamepad") ||
+ arr[i].StartsWith("Gadgets") ||
+ arr[i].StartsWith("Macros") ||
+ arr[i].StartsWith("Maps") ||
+ arr[i].StartsWith("Frontend") ||
+ arr[i].StartsWith("Playgrounds") ||
+ arr[i].StartsWith("Playsets") ||
+ arr[i].StartsWith("Movies") ||
+ arr[i].StartsWith("L10N") ||
+ arr[i].StartsWith("ImpostorBaker") ||
+ arr[i].StartsWith("Marketing") ||
+ arr[i].StartsWith("Marketing_Screenshots") ||
+ arr[i].StartsWith("Sounds") ||
+ arr[i].StartsWith("UI") ||
+ arr[i].StartsWith("Quests") ||
+ arr[i].StartsWith("VisualThreatManager") ||
+ arr[i].StartsWith("Weapons") ||
+ arr[i].StartsWith("WaterAndWind") ||
+ arr[i].StartsWith("Tools") ||
+ arr[i].StartsWith("Vehicles") ||
+ arr[i].StartsWith("PvP") ||
+ arr[i].StartsWith("Spectating") ||
+ arr[i].StartsWith("TheOutpost") ||
+ arr[i].StartsWith("TimeOfDay") ||
+ arr[i].StartsWith("Research") ||
+ arr[i].StartsWith("Relics") ||
+ arr[i].StartsWith("Slate") ||
+ arr[i].StartsWith("TheKeep") ||
+ arr[i].StartsWith("FrontEnd") ||
+ arr[i].StartsWith("AIDirector") ||
+ arr[i].StartsWith("AI") ||
+ arr[i].StartsWith("Abilities") ||
+ arr[i].StartsWith("Accessories") ||
+ arr[i].StartsWith("WorldTiles") ||
+ arr[i].StartsWith("Widgets"))
+ {
+ arr[i] = "FortniteGame/Content/" + arr[i];
+ }
+ if (arr[i].StartsWith("Content") || arr[i].StartsWith("Plugins"))
+ {
+ arr[i] = "FortniteGame/" + arr[i];
+ }
+ if (arr[i].StartsWith("Female") || arr[i].StartsWith("Male"))
+ {
+ arr[i] = "FortniteGame/Content/Characters/Player/" + arr[i];
+ }
+ if (arr[i].StartsWith("Male_Avg_Base") || arr[i].StartsWith("Medium") || arr[i].StartsWith("LegacyAssets") || arr[i].StartsWith("Large"))
+ {
+ arr[i] = "FortniteGame/Content/Characters/Player/Male/" + arr[i];
+ }
+ if (arr[i].StartsWith("Props") || arr[i].StartsWith("Sets") || arr[i].StartsWith("Prototype"))
+ {
+ arr[i] = "FortniteGame/Content/Environments/" + arr[i];
+ }
+ }
+ });
+ File.WriteAllLines(docPath + "\\FortnitePAKs.txt", arr);
+ PAKFileAsTXT = File.ReadAllLines(docPath + "\\FortnitePAKs.txt");
+ File.Delete(docPath + "\\FortnitePAKs.txt");
+
+ for (int ii = 0; ii < PAKFileAsTXT.Length; ii++)
+ {
+ CreatePath(PAKTreeView.Nodes, PAKFileAsTXT[ii].Replace(PAKFileAsTXT[ii].Split('/').Last(), ""));
+ }
+ }
+ LoadButton.Enabled = true;
+
+ stopWatch.Stop();
+ TimeSpan ts = stopWatch.Elapsed;
+ string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10);
+ AppendText("\nTime elapsed: " + elapsedTime, Color.Green, true, HorizontalAlignment.Right);
+ }
public static IEnumerable GetAncestors(TItem item, Func getParentFunc)
{
@@ -663,7 +840,14 @@ namespace FModel
var filesPath = Directory.GetFiles(docPath + "\\Extracted", qAssetName + ".*", SearchOption.AllDirectories).Where(x => !x.EndsWith(".png")).FirstOrDefault();
if (!File.Exists(filesPath))
{
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + qAssetName + "\" \"" + docPath + "\"");
+ if (isAllPAKs == false)
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + qAssetName + "\" \"" + docPath + "\"");
+ }
+ if (isAllPAKs == true)
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[qAssetName] + "\" \"" + qAssetName + "\" \"" + docPath + "\"");
+ }
filesPath = Directory.GetFiles(docPath + "\\Extracted", qAssetName + ".*", SearchOption.AllDirectories).Where(x => !x.EndsWith(".png")).FirstOrDefault();
}
try
@@ -748,9 +932,18 @@ namespace FModel
var files = Directory.GetFiles(docPath + "\\Extracted", currentItem + ".*", SearchOption.AllDirectories).Where(x => !x.EndsWith(".png")).FirstOrDefault();
if (!File.Exists(files))
{
- await Task.Run(() => {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + currentItem + "\" \"" + docPath + "\"");
- });
+ if (isAllPAKs == false)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + currentItem + "\" \"" + docPath + "\"");
+ });
+ }
+ if (isAllPAKs == true)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[currentItem] + "\" \"" + currentItem + "\" \"" + docPath + "\"");
+ });
+ }
files = Directory.GetFiles(docPath + "\\Extracted", currentItem + ".*", SearchOption.AllDirectories).Where(x => !x.EndsWith(".png")).FirstOrDefault();
}
if (files != null)
@@ -825,10 +1018,19 @@ namespace FModel
AppendText("Extracting ", Color.Black);
AppendText(IDParser[iii].HeroDefinition, Color.DarkRed, true);
- await Task.Run(() =>
+ if (isAllPAKs == false)
{
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + IDParser[iii].HeroDefinition + "\" \"" + docPath + "\"");
- });
+ await Task.Run(() =>
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + IDParser[iii].HeroDefinition + "\" \"" + docPath + "\"");
+ });
+ }
+ if (isAllPAKs == true)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[IDParser[iii].HeroDefinition] + "\" \"" + IDParser[iii].HeroDefinition + "\" \"" + docPath + "\"");
+ });
+ }
filesPath = Directory.GetFiles(docPath + "\\Extracted", IDParser[iii].HeroDefinition + ".*", SearchOption.AllDirectories).FirstOrDefault();
}
try
@@ -876,10 +1078,19 @@ namespace FModel
}
else
{
- await Task.Run(() =>
+ if (isAllPAKs == false)
{
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- });
+ await Task.Run(() =>
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ });
+ }
+ if (isAllPAKs == true)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[textureFile] + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ });
+ }
filesPath2 = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
}
}
@@ -943,10 +1154,19 @@ namespace FModel
AppendText("Extracting ", Color.Black);
AppendText(IDParser[iii].WeaponDefinition, Color.DarkRed, true);
- await Task.Run(() =>
+ if (isAllPAKs == false)
{
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + IDParser[iii].WeaponDefinition + "\" \"" + docPath + "\"");
- });
+ await Task.Run(() =>
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + IDParser[iii].WeaponDefinition + "\" \"" + docPath + "\"");
+ });
+ }
+ if (isAllPAKs == true)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[IDParser[iii].WeaponDefinition] + "\" \"" + IDParser[iii].WeaponDefinition + "\" \"" + docPath + "\"");
+ });
+ }
filesPath = Directory.GetFiles(docPath + "\\Extracted", IDParser[iii].WeaponDefinition + ".*", SearchOption.AllDirectories).FirstOrDefault();
}
try
@@ -994,10 +1214,19 @@ namespace FModel
}
else
{
- await Task.Run(() =>
+ if (isAllPAKs == false)
{
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- });
+ await Task.Run(() =>
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ });
+ }
+ if (isAllPAKs == true)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[textureFile] + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ });
+ }
filesPath2 = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
}
}
@@ -1073,21 +1302,30 @@ namespace FModel
}
else //NORMAL PAK
{
- await Task.Run(() =>
+ if (isAllPAKs == false)
{
- if (IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/2dAssets/"))
+ await Task.Run(() =>
{
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- else if (IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/TestAssets/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Prototype/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Items/"))
- {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- else
- {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- });
+ if (IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/2dAssets/"))
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ else if (IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/TestAssets/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Prototype/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Items/"))
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ else
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ });
+ }
+ if (isAllPAKs == true)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[textureFile] + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ });
+ }
filesPath = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
}
}
@@ -1146,21 +1384,30 @@ namespace FModel
}
else
{
- await Task.Run(() =>
+ if (isAllPAKs == false)
{
- if (IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/2dAssets/"))
+ await Task.Run(() =>
{
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- else if (IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/Athena/TestAssets/") || IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/Athena/Prototype/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Items/"))
- {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- else
- {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- });
+ if (IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/2dAssets/"))
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ else if (IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/Athena/TestAssets/") || IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/Athena/Prototype/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Items/"))
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ else
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ });
+ }
+ if (isAllPAKs == true)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[textureFile] + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ });
+ }
filesPath = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
}
}
@@ -1272,12 +1519,12 @@ namespace FModel
{
AppendText("Auto saving icons set to ", Color.Black);
AppendText("True", Color.Green, true);
- ItemIconPictureBox.Image.Save(docPath + "\\Generated Icons\\" + ItemName + ".png", ImageFormat.Png);
+ ItemIconPictureBox.Image.Save(docPath + "\\Generated Icons\\" + currentItem + ".png", ImageFormat.Png);
AppendText("✔ ", Color.Green);
- AppendText(ItemName, Color.DarkRed);
+ AppendText(currentItem, Color.DarkRed);
AppendText(" successfully saved to ", Color.Black);
- AppendText(docPath + "\\Generated Icons\\" + ItemName + ".png", Color.SteelBlue, true);
+ AppendText(docPath + "\\Generated Icons\\" + currentItem + ".png", Color.SteelBlue, true);
}
} //Cosmetics
if (Properties.Settings.Default.createIconForConsumablesWeapons == true && (IDParser[iii].ExportType.Contains("FortWeaponRangedItemDefinition") || IDParser[iii].ExportType.Contains("FortWeaponMeleeItemDefinition")))
@@ -1318,21 +1565,30 @@ namespace FModel
}
else //NORMAL PAK
{
- await Task.Run(() =>
+ if (isAllPAKs == false)
{
- if (IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/2dAssets/"))
+ await Task.Run(() =>
{
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- else if (IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/TestAssets/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Prototype/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Items/"))
- {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- else
- {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- });
+ if (IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/2dAssets/"))
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ else if (IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/TestAssets/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Prototype/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Items/"))
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ else
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ });
+ }
+ if (isAllPAKs == true)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[textureFile] + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ });
+ }
filesPath = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
}
}
@@ -1391,21 +1647,30 @@ namespace FModel
}
else
{
- await Task.Run(() =>
+ if (isAllPAKs == false)
{
- if (IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/2dAssets/"))
+ await Task.Run(() =>
{
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- else if (IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/Athena/TestAssets/") || IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/Athena/Prototype/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Items/"))
- {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- else
- {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- });
+ if (IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/2dAssets/"))
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ else if (IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/Athena/TestAssets/") || IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/Athena/Prototype/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Items/"))
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ else
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ });
+ }
+ if (isAllPAKs == true)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[textureFile] + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ });
+ }
filesPath = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
}
}
@@ -1522,12 +1787,12 @@ namespace FModel
{
AppendText("Auto saving icons set to ", Color.Black);
AppendText("True", Color.Green, true);
- ItemIconPictureBox.Image.Save(docPath + "\\Generated Icons\\" + ItemName + ".png", ImageFormat.Png);
+ ItemIconPictureBox.Image.Save(docPath + "\\Generated Icons\\" + currentItem + ".png", ImageFormat.Png);
AppendText("✔ ", Color.Green);
- AppendText(ItemName, Color.DarkRed);
+ AppendText(currentItem, Color.DarkRed);
AppendText(" successfully saved to ", Color.Black);
- AppendText(docPath + "\\Generated Icons\\" + ItemName + ".png", Color.SteelBlue, true);
+ AppendText(docPath + "\\Generated Icons\\" + currentItem + ".png", Color.SteelBlue, true);
}
} //Consumables & Weapons
if (Properties.Settings.Default.createIconForTraps == true && (IDParser[iii].ExportType.Contains("FortTrapItemDefinition") || IDParser[iii].ExportType.Contains("FortContextTrapItemDefinition")))
@@ -1568,21 +1833,30 @@ namespace FModel
}
else //NORMAL PAK
{
- await Task.Run(() =>
+ if (isAllPAKs == false)
{
- if (IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/2dAssets/"))
+ await Task.Run(() =>
{
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- else if (IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/TestAssets/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Prototype/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Items/"))
- {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- else
- {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- });
+ if (IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/2dAssets/"))
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ else if (IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/TestAssets/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Prototype/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Items/"))
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ else
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ });
+ }
+ if (isAllPAKs == true)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[textureFile] + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ });
+ }
filesPath = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
}
}
@@ -1641,21 +1915,30 @@ namespace FModel
}
else
{
- await Task.Run(() =>
+ if (isAllPAKs == false)
{
- if (IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/2dAssets/"))
+ await Task.Run(() =>
{
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- else if (IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/Athena/TestAssets/") || IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/Athena/Prototype/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Items/"))
- {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- else
- {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- });
+ if (IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/2dAssets/"))
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ else if (IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/Athena/TestAssets/") || IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/Athena/Prototype/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Items/"))
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ else
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ });
+ }
+ if (isAllPAKs == true)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[textureFile] + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ });
+ }
filesPath = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
}
}
@@ -1736,12 +2019,12 @@ namespace FModel
{
AppendText("Auto saving icons set to ", Color.Black);
AppendText("True", Color.Green, true);
- ItemIconPictureBox.Image.Save(docPath + "\\Generated Icons\\" + ItemName + ".png", ImageFormat.Png);
+ ItemIconPictureBox.Image.Save(docPath + "\\Generated Icons\\" + currentItem + ".png", ImageFormat.Png);
AppendText("✔ ", Color.Green);
- AppendText(ItemName, Color.DarkRed);
+ AppendText(currentItem, Color.DarkRed);
AppendText(" successfully saved to ", Color.Black);
- AppendText(docPath + "\\Generated Icons\\" + ItemName + ".png", Color.SteelBlue, true);
+ AppendText(docPath + "\\Generated Icons\\" + currentItem + ".png", Color.SteelBlue, true);
}
} //Traps
if (Properties.Settings.Default.createIconForVariants == true && (IDParser[iii].ExportType == "FortVariantTokenType"))
@@ -1782,21 +2065,30 @@ namespace FModel
}
else //NORMAL PAK
{
- await Task.Run(() =>
+ if (isAllPAKs == false)
{
- if (IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/2dAssets/"))
+ await Task.Run(() =>
{
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- else if (IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/TestAssets/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Prototype/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Items/"))
- {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- else
- {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- });
+ if (IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/2dAssets/"))
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ else if (IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/TestAssets/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Prototype/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Items/"))
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ else
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ });
+ }
+ if (isAllPAKs == true)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[textureFile] + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ });
+ }
filesPath = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
}
}
@@ -1855,21 +2147,30 @@ namespace FModel
}
else
{
- await Task.Run(() =>
+ if (isAllPAKs == false)
{
- if (IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/2dAssets/"))
+ await Task.Run(() =>
{
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- else if (IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/Athena/TestAssets/") || IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/Athena/Prototype/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Items/"))
- {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- else
- {
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
- }
- });
+ if (IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/2dAssets/"))
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ else if (IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/Athena/TestAssets/") || IDParser[iii].SmallPreviewImage.AssetPathName.Contains("/Game/Athena/Prototype/") || IDParser[iii].LargePreviewImage.AssetPathName.Contains("/Game/Athena/Items/"))
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ else
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ }
+ });
+ }
+ if (isAllPAKs == true)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[textureFile] + "\" \"" + textureFile + "\" \"" + docPath + "\"");
+ });
+ }
filesPath = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
}
}
@@ -1972,12 +2273,12 @@ namespace FModel
{
AppendText("Auto saving icons set to ", Color.Black);
AppendText("True", Color.Green, true);
- ItemIconPictureBox.Image.Save(docPath + "\\Generated Icons\\" + ItemName + ".png", ImageFormat.Png);
+ ItemIconPictureBox.Image.Save(docPath + "\\Generated Icons\\" + currentItem + ".png", ImageFormat.Png);
AppendText("✔ ", Color.Green);
- AppendText(ItemName, Color.DarkRed);
+ AppendText(currentItem, Color.DarkRed);
AppendText(" successfully saved to ", Color.Black);
- AppendText(docPath + "\\Generated Icons\\" + ItemName + ".png", Color.SteelBlue, true);
+ AppendText(docPath + "\\Generated Icons\\" + currentItem + ".png", Color.SteelBlue, true);
}
} //CosmeticVariantTokens
}
@@ -2004,10 +2305,19 @@ namespace FModel
var filesPath = Directory.GetFiles(docPath + "\\Extracted", challengesArray[w] + ".*", SearchOption.AllDirectories).Where(x => !x.EndsWith(".png")).FirstOrDefault();
if (!File.Exists(filesPath))
{
- await Task.Run(() =>
+ if (isAllPAKs == false)
{
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + challengesArray[w] + "\" \"" + docPath + "\"");
- });
+ await Task.Run(() =>
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + challengesArray[w] + "\" \"" + docPath + "\"");
+ });
+ }
+ if (isAllPAKs == true)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[challengesArray[w]] + "\" \"" + challengesArray[w] + "\" \"" + docPath + "\"");
+ });
+ }
filesPath = Directory.GetFiles(docPath + "\\Extracted", challengesArray[w] + ".*", SearchOption.AllDirectories).Where(x => !x.EndsWith(".png")).FirstOrDefault();
}
try
@@ -2128,12 +2438,12 @@ namespace FModel
{
AppendText("Auto saving icons set to ", Color.Black);
AppendText("True", Color.Green, true);
- ItemIconPictureBox.Image.Save(docPath + "\\Generated Icons\\" + ItemName + ".png", ImageFormat.Png);
+ ItemIconPictureBox.Image.Save(docPath + "\\Generated Icons\\" + currentItem + ".png", ImageFormat.Png);
AppendText("✔ ", Color.Green);
- AppendText(ItemName, Color.DarkRed);
+ AppendText(currentItem, Color.DarkRed);
AppendText(" successfully saved to ", Color.Black);
- AppendText(docPath + "\\Generated Icons\\" + ItemName + ".png", Color.SteelBlue, true);
+ AppendText(docPath + "\\Generated Icons\\" + currentItem + ".png", Color.SteelBlue, true);
}
} //ASSET IS A CHALLENGE =>
if (IDParser[ii].ExportType == "Texture2D")
@@ -2151,10 +2461,19 @@ namespace FModel
var filesPath = Directory.GetFiles(docPath + "\\Extracted", currentItem + ".*", SearchOption.AllDirectories).Where(x => !x.EndsWith(".png")).FirstOrDefault();
if (!File.Exists(filesPath))
{
- await Task.Run(() =>
+ if (isAllPAKs == false)
{
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + currentItem + "\" \"" + docPath + "\"");
- });
+ await Task.Run(() =>
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + currentItem + "\" \"" + docPath + "\"");
+ });
+ }
+ if (isAllPAKs == true)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[currentItem] + "\" \"" + currentItem + "\" \"" + docPath + "\"");
+ });
+ }
filesPath = Directory.GetFiles(docPath + "\\Extracted", currentItem + ".*", SearchOption.AllDirectories).Where(x => !x.EndsWith(".png")).FirstOrDefault();
}
try
@@ -2204,12 +2523,12 @@ namespace FModel
{
AppendText("Auto saving images set to ", Color.Black);
AppendText("True", Color.Green, true);
- ItemIconPictureBox.Image.Save(docPath + "\\Generated Icons\\" + ItemName + ".png", ImageFormat.Png);
+ ItemIconPictureBox.Image.Save(docPath + "\\Generated Icons\\" + currentItem + ".png", ImageFormat.Png);
AppendText("✔ ", Color.Green);
- AppendText(ItemName, Color.DarkRed);
+ AppendText(currentItem, Color.DarkRed);
AppendText(" successfully saved to ", Color.Black);
- AppendText(docPath + "\\Generated Icons\\" + ItemName + ".png", Color.SteelBlue, true);
+ AppendText(docPath + "\\Generated Icons\\" + currentItem + ".png", Color.SteelBlue, true);
}
} //ASSET IS A TEXTURE => LOAD TEXTURE
if (IDParser[ii].ExportType == "SoundWave")
@@ -2228,10 +2547,19 @@ namespace FModel
var filesPath = Directory.GetFiles(docPath + "\\Extracted", currentItem + ".uexp", SearchOption.AllDirectories).FirstOrDefault();
if (!File.Exists(filesPath))
{
- await Task.Run(() =>
+ if (isAllPAKs == false)
{
- jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + currentItem + "\" \"" + docPath + "\"");
- });
+ await Task.Run(() =>
+ {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + currentItem + "\" \"" + docPath + "\"");
+ });
+ }
+ if (isAllPAKs == true)
+ {
+ await Task.Run(() => {
+ jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[currentItem] + "\" \"" + currentItem + "\" \"" + docPath + "\"");
+ });
+ }
filesPath = Directory.GetFiles(docPath + "\\Extracted", currentItem + ".uexp", SearchOption.AllDirectories).FirstOrDefault();
}
try
@@ -2320,12 +2648,12 @@ namespace FModel
saveTheDialog.Title = "Save Icon";
saveTheDialog.Filter = "PNG Files (*.png)|*.png";
saveTheDialog.InitialDirectory = docPath + "\\Generated Icons\\";
- saveTheDialog.FileName = ItemName;
+ saveTheDialog.FileName = currentItem;
if (saveTheDialog.ShowDialog() == DialogResult.OK)
{
ItemIconPictureBox.Image.Save(saveTheDialog.FileName, ImageFormat.Png);
AppendText("✔ ", Color.Green);
- AppendText(ItemName, Color.DarkRed);
+ AppendText(currentItem, Color.DarkRed);
AppendText(" successfully saved to ", Color.Black);
AppendText(saveTheDialog.FileName, Color.SteelBlue, true);
}
@@ -2353,87 +2681,80 @@ namespace FModel
private void mergeGeneratedImagesToolStripMenuItem_Click(object sender, EventArgs e)
{
- try
+ if (string.IsNullOrEmpty(Properties.Settings.Default.mergerFileName))
{
- if (string.IsNullOrEmpty(Properties.Settings.Default.mergerFileName))
- {
- MessageBox.Show("Please, set a name to your file before trying to merge images\n\nSteps:\n\t- Load button drop down menu\n\t- Options", "FModel Merger File Name Missing", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- else
- {
- OpenFileDialog theDialog = new OpenFileDialog();
- theDialog.Multiselect = true;
- theDialog.InitialDirectory = docPath + "\\Generated Icons\\";
- theDialog.Title = "Choose your images";
- theDialog.Filter = "PNG Files (*.png)|*.png|JPEG Files (*.jpg)|*.jpg|BMP Files (*.bmp)|*.bmp|All Files (*.*)|*.*";
+ MessageBox.Show("Please, set a name to your file before trying to merge images\n\nSteps:\n\t- Load button drop down menu\n\t- Options", "FModel Merger File Name Missing", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ OpenFileDialog theDialog = new OpenFileDialog();
+ theDialog.Multiselect = true;
+ theDialog.InitialDirectory = docPath + "\\Generated Icons\\";
+ theDialog.Title = "Choose your images";
+ theDialog.Filter = "PNG Files (*.png)|*.png|JPEG Files (*.jpg)|*.jpg|BMP Files (*.bmp)|*.bmp|All Files (*.*)|*.*";
- if (theDialog.ShowDialog() == DialogResult.OK)
+ if (theDialog.ShowDialog() == DialogResult.OK)
+ {
+ List selectedImages = new List();
+ foreach (var files in theDialog.FileNames)
{
- List selectedImages = new List();
- foreach (var files in theDialog.FileNames)
- {
- selectedImages.Add(Image.FromFile(files));
- }
+ selectedImages.Add(Image.FromFile(files));
+ }
- if (Properties.Settings.Default.mergerImagesRow == 0)
- {
- Properties.Settings.Default.mergerImagesRow = 7;
- Properties.Settings.Default.Save();
- }
- int numperrow = Properties.Settings.Default.mergerImagesRow;
- var w = 530 * numperrow;
- if (selectedImages.Count * 530 < 530 * numperrow)
- {
- w = selectedImages.Count * 530;
- }
+ if (Properties.Settings.Default.mergerImagesRow == 0)
+ {
+ Properties.Settings.Default.mergerImagesRow = 7;
+ Properties.Settings.Default.Save();
+ }
+ int numperrow = Properties.Settings.Default.mergerImagesRow;
+ var w = 530 * numperrow;
+ if (selectedImages.Count * 530 < 530 * numperrow)
+ {
+ w = selectedImages.Count * 530;
+ }
- int h = int.Parse(Math.Ceiling(double.Parse(selectedImages.Count.ToString()) / numperrow).ToString()) * 530;
- Bitmap bmp = new Bitmap(w - 8, h - 8);
+ int h = int.Parse(Math.Ceiling(double.Parse(selectedImages.Count.ToString()) / numperrow).ToString()) * 530;
+ Bitmap bmp = new Bitmap(w - 8, h - 8);
- var num = 1;
- var cur_w = 0;
- var cur_h = 0;
+ var num = 1;
+ var cur_w = 0;
+ var cur_h = 0;
- for (int i = 0; i < selectedImages.Count; i++)
+ for (int i = 0; i < selectedImages.Count; i++)
+ {
+ using (Graphics g = Graphics.FromImage(bmp))
{
- using (Graphics g = Graphics.FromImage(bmp))
+ g.DrawImage(selectedImages[i], new PointF(cur_w, cur_h));
+ if (num % numperrow == 0)
{
- g.DrawImage(selectedImages[i], new PointF(cur_w, cur_h));
- if (num % numperrow == 0)
- {
- cur_w = 0;
- cur_h += 530;
- num += 1;
- }
- else
- {
- cur_w += 530;
- num += 1;
- }
+ cur_w = 0;
+ cur_h += 530;
+ num += 1;
+ }
+ else
+ {
+ cur_w += 530;
+ num += 1;
}
}
- bmp.Save(docPath + "\\" + Properties.Settings.Default.mergerFileName + ".png", ImageFormat.Png);
- var newForm = new Form();
-
- PictureBox pb = new PictureBox();
- pb.Dock = DockStyle.Fill;
- pb.Image = bmp;
- pb.SizeMode = PictureBoxSizeMode.Zoom;
-
- newForm.WindowState = FormWindowState.Maximized;
- newForm.Size = bmp.Size;
- newForm.Icon = Properties.Resources.FNTools_Logo_Icon;
- newForm.Text = docPath + "\\" + Properties.Settings.Default.mergerFileName + ".png";
- newForm.StartPosition = FormStartPosition.CenterScreen;
- newForm.Controls.Add(pb);
- newForm.Show();
}
+ bmp.Save(docPath + "\\" + Properties.Settings.Default.mergerFileName + ".png", ImageFormat.Png);
+ var newForm = new Form();
+
+ PictureBox pb = new PictureBox();
+ pb.Dock = DockStyle.Fill;
+ pb.Image = bmp;
+ pb.SizeMode = PictureBoxSizeMode.Zoom;
+
+ newForm.WindowState = FormWindowState.Maximized;
+ newForm.Size = bmp.Size;
+ newForm.Icon = Properties.Resources.FNTools_Logo_Icon;
+ newForm.Text = docPath + "\\" + Properties.Settings.Default.mergerFileName + ".png";
+ newForm.StartPosition = FormStartPosition.CenterScreen;
+ newForm.Controls.Add(pb);
+ newForm.Show();
}
}
- catch (Exception ex)
- {
- Console.WriteLine(ex.StackTrace);
- }
}
private void optionsToolStripMenuItem_Click(object sender, EventArgs e)
diff --git a/FModel/PAKWindow.resx b/FModel/PAKWindow.resx
index 5ebce2b5..3f99b7e2 100644
--- a/FModel/PAKWindow.resx
+++ b/FModel/PAKWindow.resx
@@ -131,7 +131,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACc
- BwAAAk1TRnQBSQFMAgEBAgEAAUABAAFAAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ BwAAAk1TRnQBSQFMAgEBAgEAAUgBAAFIAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
diff --git a/README.md b/README.md
index d78b79dc..cd40a3df 100644
--- a/README.md
+++ b/README.md
@@ -51,7 +51,10 @@ I'd highly suggest you to use [UModel](https://github.com/gildor2/UModel) instea
- [x] Multithreading - Need improvements
- [x] Filter for the items ListBox
- [x] Quest viewer or something
-- [ ] More settings
+- [ ] Load all paks
+- [ ] Load only difference between 2 paks version
+- [ ] Custom watermark option on icons
+- [ ] Choose between extracted filename or displayName for icons file name
- [ ] Stop button while extracting
- [ ] Support for meshes
- [ ] Support for animations