mirror of
https://github.com/4sval/FModel.git
synced 2026-03-21 17:24:26 -05:00
added string concatenation to guess DA file for CIDs
This commit is contained in:
parent
feca32f002
commit
db6c32e0f8
101
FModel/PAKWindow.Designer.cs
generated
101
FModel/PAKWindow.Designer.cs
generated
|
|
@ -31,7 +31,6 @@
|
|||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PAKWindow));
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.LoadButton = new FModel.SplitButton();
|
||||
this.LoadContext = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.loadAllPAKsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.backupCurrentPAKsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
|
@ -47,10 +46,8 @@
|
|||
this.ItemIconPictureBox = new System.Windows.Forms.PictureBox();
|
||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
this.scintilla1 = new ScintillaNET.Scintilla();
|
||||
this.OpenImageButton = new FModel.SplitButton();
|
||||
this.ImageContext = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.ImageSaveTS = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.ExtractAssetButton = new FModel.SplitButton();
|
||||
this.ExtractAsset = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.LoadDataTS = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.SaveImageTS = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
|
@ -59,6 +56,11 @@
|
|||
this.ConsoleRichTextBox = new System.Windows.Forms.RichTextBox();
|
||||
this.FilterLabel = new System.Windows.Forms.Label();
|
||||
this.FilterTextBox = new System.Windows.Forms.TextBox();
|
||||
this.updateModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.OpenImageButton = new FModel.SplitButton();
|
||||
this.ExtractAssetButton = new FModel.SplitButton();
|
||||
this.LoadButton = new FModel.SplitButton();
|
||||
this.groupBox1.SuspendLayout();
|
||||
this.LoadContext.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.ItemIconPictureBox)).BeginInit();
|
||||
|
|
@ -80,29 +82,19 @@
|
|||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "PAK";
|
||||
//
|
||||
// LoadButton
|
||||
//
|
||||
this.LoadButton.Location = new System.Drawing.Point(296, 18);
|
||||
this.LoadButton.Menu = this.LoadContext;
|
||||
this.LoadButton.Name = "LoadButton";
|
||||
this.LoadButton.Size = new System.Drawing.Size(106, 23);
|
||||
this.LoadButton.TabIndex = 12;
|
||||
this.LoadButton.Text = " Load";
|
||||
this.LoadButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.LoadButton.UseVisualStyleBackColor = true;
|
||||
this.LoadButton.Click += new System.EventHandler(this.LoadButton_Click);
|
||||
//
|
||||
// LoadContext
|
||||
//
|
||||
this.LoadContext.ImageScalingSize = new System.Drawing.Size(18, 18);
|
||||
this.LoadContext.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.loadAllPAKsToolStripMenuItem,
|
||||
this.toolStripSeparator2,
|
||||
this.backupCurrentPAKsToolStripMenuItem,
|
||||
this.enablePAKsDiffToolStripMenuItem,
|
||||
this.toolStripSeparator2,
|
||||
this.updateModeToolStripMenuItem,
|
||||
this.toolStripSeparator3,
|
||||
this.optionsToolStripMenuItem});
|
||||
this.LoadContext.Name = "LoadContext";
|
||||
this.LoadContext.Size = new System.Drawing.Size(186, 120);
|
||||
this.LoadContext.Size = new System.Drawing.Size(186, 148);
|
||||
//
|
||||
// loadAllPAKsToolStripMenuItem
|
||||
//
|
||||
|
|
@ -230,18 +222,6 @@
|
|||
this.scintilla1.Size = new System.Drawing.Size(560, 350);
|
||||
this.scintilla1.TabIndex = 12;
|
||||
//
|
||||
// OpenImageButton
|
||||
//
|
||||
this.OpenImageButton.Location = new System.Drawing.Point(810, 635);
|
||||
this.OpenImageButton.Menu = this.ImageContext;
|
||||
this.OpenImageButton.Name = "OpenImageButton";
|
||||
this.OpenImageButton.Size = new System.Drawing.Size(112, 23);
|
||||
this.OpenImageButton.TabIndex = 11;
|
||||
this.OpenImageButton.Text = " Open Image";
|
||||
this.OpenImageButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.OpenImageButton.UseVisualStyleBackColor = true;
|
||||
this.OpenImageButton.Click += new System.EventHandler(this.OpenImageButton_Click);
|
||||
//
|
||||
// ImageContext
|
||||
//
|
||||
this.ImageContext.ImageScalingSize = new System.Drawing.Size(18, 18);
|
||||
|
|
@ -258,18 +238,6 @@
|
|||
this.ImageSaveTS.Text = "Save Image";
|
||||
this.ImageSaveTS.Click += new System.EventHandler(this.ImageSaveTS_Click);
|
||||
//
|
||||
// ExtractAssetButton
|
||||
//
|
||||
this.ExtractAssetButton.Location = new System.Drawing.Point(810, 664);
|
||||
this.ExtractAssetButton.Menu = this.ExtractAsset;
|
||||
this.ExtractAssetButton.Name = "ExtractAssetButton";
|
||||
this.ExtractAssetButton.Size = new System.Drawing.Size(112, 23);
|
||||
this.ExtractAssetButton.TabIndex = 10;
|
||||
this.ExtractAssetButton.Text = " Extract Asset";
|
||||
this.ExtractAssetButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.ExtractAssetButton.UseVisualStyleBackColor = true;
|
||||
this.ExtractAssetButton.Click += new System.EventHandler(this.ExtractAssetButton_Click);
|
||||
//
|
||||
// ExtractAsset
|
||||
//
|
||||
this.ExtractAsset.ImageScalingSize = new System.Drawing.Size(18, 18);
|
||||
|
|
@ -339,6 +307,55 @@
|
|||
this.FilterTextBox.TabIndex = 5;
|
||||
this.FilterTextBox.TextChanged += new System.EventHandler(this.FilterTextBox_TextChanged);
|
||||
//
|
||||
// updateModeToolStripMenuItem
|
||||
//
|
||||
this.updateModeToolStripMenuItem.CheckOnClick = true;
|
||||
this.updateModeToolStripMenuItem.Enabled = false;
|
||||
this.updateModeToolStripMenuItem.Name = "updateModeToolStripMenuItem";
|
||||
this.updateModeToolStripMenuItem.Size = new System.Drawing.Size(185, 22);
|
||||
this.updateModeToolStripMenuItem.Text = "Update Mode";
|
||||
//
|
||||
// toolStripSeparator3
|
||||
//
|
||||
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||
this.toolStripSeparator3.Size = new System.Drawing.Size(182, 6);
|
||||
//
|
||||
// OpenImageButton
|
||||
//
|
||||
this.OpenImageButton.Location = new System.Drawing.Point(810, 635);
|
||||
this.OpenImageButton.Menu = this.ImageContext;
|
||||
this.OpenImageButton.Name = "OpenImageButton";
|
||||
this.OpenImageButton.Size = new System.Drawing.Size(112, 23);
|
||||
this.OpenImageButton.TabIndex = 11;
|
||||
this.OpenImageButton.Text = " Open Image";
|
||||
this.OpenImageButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.OpenImageButton.UseVisualStyleBackColor = true;
|
||||
this.OpenImageButton.Click += new System.EventHandler(this.OpenImageButton_Click);
|
||||
//
|
||||
// ExtractAssetButton
|
||||
//
|
||||
this.ExtractAssetButton.Location = new System.Drawing.Point(810, 664);
|
||||
this.ExtractAssetButton.Menu = this.ExtractAsset;
|
||||
this.ExtractAssetButton.Name = "ExtractAssetButton";
|
||||
this.ExtractAssetButton.Size = new System.Drawing.Size(112, 23);
|
||||
this.ExtractAssetButton.TabIndex = 10;
|
||||
this.ExtractAssetButton.Text = " Extract Asset";
|
||||
this.ExtractAssetButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.ExtractAssetButton.UseVisualStyleBackColor = true;
|
||||
this.ExtractAssetButton.Click += new System.EventHandler(this.ExtractAssetButton_Click);
|
||||
//
|
||||
// LoadButton
|
||||
//
|
||||
this.LoadButton.Location = new System.Drawing.Point(296, 18);
|
||||
this.LoadButton.Menu = this.LoadContext;
|
||||
this.LoadButton.Name = "LoadButton";
|
||||
this.LoadButton.Size = new System.Drawing.Size(106, 23);
|
||||
this.LoadButton.TabIndex = 12;
|
||||
this.LoadButton.Text = " Load";
|
||||
this.LoadButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.LoadButton.UseVisualStyleBackColor = true;
|
||||
this.LoadButton.Click += new System.EventHandler(this.LoadButton_Click);
|
||||
//
|
||||
// PAKWindow
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
|
|
@ -401,6 +418,8 @@
|
|||
private System.Windows.Forms.ToolStripMenuItem backupCurrentPAKsToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem enablePAKsDiffToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||
private System.Windows.Forms.ToolStripMenuItem updateModeToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -774,9 +774,17 @@ namespace FModel
|
|||
private void enablePAKsDiffToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (enablePAKsDiffToolStripMenuItem.Checked == true)
|
||||
{
|
||||
loadAllPAKsToolStripMenuItem.Text = "Load Difference";
|
||||
updateModeToolStripMenuItem.Enabled = true;
|
||||
}
|
||||
if (enablePAKsDiffToolStripMenuItem.Checked == false)
|
||||
{
|
||||
loadAllPAKsToolStripMenuItem.Text = "Load All PAKs";
|
||||
updateModeToolStripMenuItem.Enabled = false;
|
||||
if (updateModeToolStripMenuItem.Checked == true)
|
||||
updateModeToolStripMenuItem.Checked = false;
|
||||
}
|
||||
}
|
||||
|
||||
public static IEnumerable<TItem> GetAncestors<TItem>(TItem item, Func<TItem, TItem> getParentFunc)
|
||||
|
|
@ -2075,6 +2083,768 @@ namespace FModel
|
|||
AppendText(PAKsComboBox.SelectedItem.ToString(), Color.DarkRed, true);
|
||||
}
|
||||
}
|
||||
else if (IDParser[iii].DisplayAssetPath == null && IDParser[iii].ExportType == "AthenaCharacterItemDefinition")
|
||||
{
|
||||
var files2 = Directory.GetFiles(docPath + "\\Extracted", "DA_Featured_" + currentItem + ".*", SearchOption.AllDirectories).Where(x => !x.EndsWith(".png")).FirstOrDefault();
|
||||
if (!File.Exists(files2))
|
||||
{
|
||||
if (isAllPAKs == false)
|
||||
{
|
||||
await Task.Run(() => {
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + "DA_Featured_" + currentItem + "\" \"" + docPath + "\"");
|
||||
});
|
||||
}
|
||||
if (isAllPAKs == true)
|
||||
{
|
||||
await Task.Run(() => {
|
||||
try
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict["DA_Featured_" + currentItem] + "\" \"" + "DA_Featured_" + currentItem + "\" \"" + docPath + "\"");
|
||||
}
|
||||
catch (KeyNotFoundException ex)
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.Write("[ERROR] ");
|
||||
Console.ForegroundColor = ConsoleColor.White;
|
||||
Console.Write(ex.Message);
|
||||
}
|
||||
});
|
||||
}
|
||||
files2 = Directory.GetFiles(docPath + "\\Extracted", "DA_Featured_" + currentItem + ".*", SearchOption.AllDirectories).Where(x => !x.EndsWith(".png")).FirstOrDefault();
|
||||
}
|
||||
try
|
||||
{
|
||||
if (files2 != null)
|
||||
{
|
||||
wasFeatured = true;
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText("DA_Featured_" + currentItem, Color.DarkRed);
|
||||
AppendText(" successfully extracted to ", Color.Black);
|
||||
AppendText(files2.Substring(0, files2.LastIndexOf('.')), Color.SteelBlue, true);
|
||||
try
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("serialize \"" + files2.Substring(0, files2.LastIndexOf('.')) + "\"");
|
||||
});
|
||||
var filesJSON2 = Directory.GetFiles(docPath, "DA_Featured_" + currentItem + ".json", SearchOption.AllDirectories).FirstOrDefault();
|
||||
var json2 = JToken.Parse(File.ReadAllText(filesJSON2)).ToString();
|
||||
File.Delete(filesJSON2);
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText("DA_Featured_" + currentItem, Color.DarkRed);
|
||||
AppendText(" successfully serialized", Color.Black, true);
|
||||
|
||||
var IDParser2 = FeaturedParser.FromJson(json2);
|
||||
for (int i1 = 0; i1 < IDParser2.Length; i1++)
|
||||
{
|
||||
if (IDParser2[i1].DetailsImage != null)
|
||||
{
|
||||
string textureFile = IDParser2[i1].DetailsImage.ResourceObject;
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" detected as a ", Color.Black);
|
||||
AppendText("Texture2D file", Color.SteelBlue, true);
|
||||
|
||||
var filesPath2 = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
if (!File.Exists(filesPath2))
|
||||
{
|
||||
if (currentGUID != "0-0-0-0")
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
|
||||
});
|
||||
filesPath2 = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isAllPAKs == false)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
|
||||
});
|
||||
}
|
||||
if (isAllPAKs == true)
|
||||
{
|
||||
await Task.Run(() => {
|
||||
try
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[textureFile] + "\" \"" + textureFile + "\" \"" + docPath + "\"");
|
||||
}
|
||||
catch (KeyNotFoundException ex)
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.Write("[ERROR] ");
|
||||
Console.ForegroundColor = ConsoleColor.White;
|
||||
Console.Write(ex.Message);
|
||||
}
|
||||
});
|
||||
}
|
||||
filesPath2 = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
try
|
||||
{
|
||||
if (filesPath2 != null && filesPath2.Contains("MI_UI_FeaturedRenderSwitch_"))
|
||||
{
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" successfully extracted to ", Color.Black);
|
||||
AppendText(filesPath2.Substring(0, filesPath2.LastIndexOf('.')), Color.SteelBlue, true);
|
||||
try
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("serialize \"" + filesPath2.Substring(0, filesPath2.LastIndexOf('.')) + "\"");
|
||||
});
|
||||
var filesJSON3 = Directory.GetFiles(docPath, textureFile + ".json", SearchOption.AllDirectories).FirstOrDefault();
|
||||
var json3 = JToken.Parse(File.ReadAllText(filesJSON3)).ToString();
|
||||
File.Delete(filesJSON3);
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" successfully serialized", Color.Black, true);
|
||||
|
||||
var RenderParser = RenderSwitchMaterial.FromJson(json3);
|
||||
for (int i2 = 0; i2 < RenderParser.Length; i2++)
|
||||
{
|
||||
if (RenderParser[i2].TextureParameterValues.FirstOrDefault().ParameterValue != null)
|
||||
{
|
||||
string textureFile2 = RenderParser[i2].TextureParameterValues.FirstOrDefault().ParameterValue;
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile2, Color.DarkRed);
|
||||
AppendText(" detected as a ", Color.Black);
|
||||
AppendText("Texture2D file", Color.SteelBlue, true);
|
||||
|
||||
var filesPath3 = Directory.GetFiles(docPath + "\\Extracted", textureFile2 + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
if (!File.Exists(filesPath3))
|
||||
{
|
||||
if (currentGUID != "0-0-0-0")
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile2 + "\" \"" + docPath + "\"");
|
||||
});
|
||||
filesPath3 = Directory.GetFiles(docPath + "\\Extracted", textureFile2 + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isAllPAKs == false)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile2 + "\" \"" + docPath + "\"");
|
||||
});
|
||||
}
|
||||
if (isAllPAKs == true)
|
||||
{
|
||||
await Task.Run(() => {
|
||||
try
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[textureFile2] + "\" \"" + textureFile2 + "\" \"" + docPath + "\"");
|
||||
}
|
||||
catch (KeyNotFoundException ex)
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.Write("[ERROR] ");
|
||||
Console.ForegroundColor = ConsoleColor.White;
|
||||
Console.Write(ex.Message);
|
||||
}
|
||||
});
|
||||
}
|
||||
filesPath3 = Directory.GetFiles(docPath + "\\Extracted", textureFile2 + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
try
|
||||
{
|
||||
if (filesPath3 != null)
|
||||
{
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile2, Color.DarkRed);
|
||||
AppendText(" successfully extracted to ", Color.Black);
|
||||
AppendText(filesPath3.Substring(0, filesPath3.LastIndexOf('.')), Color.SteelBlue, true);
|
||||
|
||||
itemIconPath = filesPath3.Substring(0, filesPath3.LastIndexOf('.')) + ".png";
|
||||
if (!File.Exists(itemIconPath))
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("texture \"" + filesPath3.Substring(0, filesPath3.LastIndexOf('.')) + "\"");
|
||||
});
|
||||
itemIconPath = filesPath3.Substring(0, filesPath3.LastIndexOf('.')) + ".png";
|
||||
}
|
||||
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile2, Color.DarkRed);
|
||||
AppendText(" successfully converted to a PNG image with path ", Color.Black);
|
||||
AppendText(itemIconPath, Color.SteelBlue, true);
|
||||
}
|
||||
}
|
||||
catch (IndexOutOfRangeException)
|
||||
{
|
||||
AppendText("[IndexOutOfRangeException] ", Color.Red);
|
||||
AppendText("Can't extract ", Color.Black);
|
||||
AppendText(textureFile2, Color.SteelBlue);
|
||||
AppendText(" in ", Color.Black);
|
||||
AppendText("pakchunk0_s7-WindowsClient.pak", Color.DarkRed, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
else if (filesPath2 != null && !filesPath2.Contains("MI_UI_FeaturedRenderSwitch_"))
|
||||
{
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" successfully extracted to ", Color.Black);
|
||||
AppendText(filesPath2.Substring(0, filesPath2.LastIndexOf('.')), Color.SteelBlue, true);
|
||||
|
||||
itemIconPath = filesPath2.Substring(0, filesPath2.LastIndexOf('.')) + ".png";
|
||||
if (!File.Exists(itemIconPath))
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("texture \"" + filesPath2.Substring(0, filesPath2.LastIndexOf('.')) + "\"");
|
||||
});
|
||||
itemIconPath = filesPath2.Substring(0, filesPath2.LastIndexOf('.')) + ".png";
|
||||
}
|
||||
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" successfully converted to a PNG image with path ", Color.Black);
|
||||
AppendText(itemIconPath, Color.SteelBlue, true);
|
||||
}
|
||||
}
|
||||
catch (IndexOutOfRangeException)
|
||||
{
|
||||
AppendText("[IndexOutOfRangeException] ", Color.Red);
|
||||
AppendText("Can't extract ", Color.Black);
|
||||
AppendText(textureFile, Color.SteelBlue);
|
||||
AppendText(" in ", Color.Black);
|
||||
AppendText("pakchunk0_s7-WindowsClient.pak", Color.DarkRed, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wasFeatured = false;
|
||||
if (IDParser[iii].HeroDefinition != null)
|
||||
{
|
||||
var filesPath = Directory.GetFiles(docPath + "\\Extracted", IDParser[iii].HeroDefinition + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
if (!File.Exists(filesPath))
|
||||
{
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText("Extracting ", Color.Black);
|
||||
AppendText(IDParser[iii].HeroDefinition, Color.DarkRed, true);
|
||||
|
||||
if (isAllPAKs == false)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + IDParser[iii].HeroDefinition + "\" \"" + docPath + "\"");
|
||||
});
|
||||
}
|
||||
if (isAllPAKs == true)
|
||||
{
|
||||
await Task.Run(() => {
|
||||
try
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[IDParser[iii].HeroDefinition] + "\" \"" + IDParser[iii].HeroDefinition + "\" \"" + docPath + "\"");
|
||||
}
|
||||
catch (KeyNotFoundException ex)
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.Write("[ERROR] ");
|
||||
Console.ForegroundColor = ConsoleColor.White;
|
||||
Console.Write(ex.Message);
|
||||
}
|
||||
});
|
||||
}
|
||||
filesPath = Directory.GetFiles(docPath + "\\Extracted", IDParser[iii].HeroDefinition + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
}
|
||||
try
|
||||
{
|
||||
if (filesPath != null)
|
||||
{
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(IDParser[iii].HeroDefinition, Color.DarkRed);
|
||||
AppendText(" successfully extracted to ", Color.Black);
|
||||
AppendText(filesPath.Substring(0, filesPath.LastIndexOf('.')), Color.SteelBlue, true);
|
||||
try
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("serialize \"" + filesPath.Substring(0, filesPath.LastIndexOf('.')) + "\"");
|
||||
});
|
||||
var filesJSON2 = Directory.GetFiles(docPath, IDParser[iii].HeroDefinition + ".json", SearchOption.AllDirectories).FirstOrDefault();
|
||||
var json2 = JToken.Parse(File.ReadAllText(filesJSON2)).ToString();
|
||||
File.Delete(filesJSON2);
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(IDParser[iii].HeroDefinition, Color.DarkRed);
|
||||
AppendText(" successfully serialized", Color.Black, true);
|
||||
|
||||
var IDParser2 = ItemsIdParser.FromJson(json2);
|
||||
for (int i1 = 0; i1 < IDParser2.Length; i1++)
|
||||
{
|
||||
if (IDParser2[i1].LargePreviewImage != null)
|
||||
{
|
||||
string textureFile = Path.GetFileName(IDParser2[i1].LargePreviewImage.AssetPathName).Substring(0, Path.GetFileName(IDParser2[i1].LargePreviewImage.AssetPathName).LastIndexOf('.'));
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" detected as a ", Color.Black);
|
||||
AppendText("Texture2D file", Color.SteelBlue, true);
|
||||
|
||||
var filesPath2 = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
if (!File.Exists(filesPath2))
|
||||
{
|
||||
if (currentGUID != "0-0-0-0")
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
|
||||
});
|
||||
filesPath2 = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isAllPAKs == false)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
|
||||
});
|
||||
}
|
||||
if (isAllPAKs == true)
|
||||
{
|
||||
await Task.Run(() => {
|
||||
try
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[textureFile] + "\" \"" + textureFile + "\" \"" + docPath + "\"");
|
||||
}
|
||||
catch (KeyNotFoundException ex)
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.Write("[ERROR] ");
|
||||
Console.ForegroundColor = ConsoleColor.White;
|
||||
Console.Write(ex.Message);
|
||||
}
|
||||
});
|
||||
}
|
||||
filesPath2 = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
try
|
||||
{
|
||||
if (filesPath2 != null)
|
||||
{
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" successfully extracted to ", Color.Black);
|
||||
AppendText(filesPath2.Substring(0, filesPath2.LastIndexOf('.')), Color.SteelBlue, true);
|
||||
|
||||
itemIconPath = filesPath2.Substring(0, filesPath2.LastIndexOf('.')) + ".png";
|
||||
if (!File.Exists(itemIconPath))
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("texture \"" + filesPath2.Substring(0, filesPath2.LastIndexOf('.')) + "\"");
|
||||
});
|
||||
itemIconPath = filesPath2.Substring(0, filesPath2.LastIndexOf('.')) + ".png";
|
||||
}
|
||||
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" successfully converted to a PNG image with path ", Color.Black);
|
||||
AppendText(itemIconPath, Color.SteelBlue, true);
|
||||
}
|
||||
}
|
||||
catch (IndexOutOfRangeException)
|
||||
{
|
||||
AppendText("[IndexOutOfRangeException] ", Color.Red);
|
||||
AppendText("Can't extract ", Color.Black);
|
||||
AppendText(textureFile, Color.SteelBlue);
|
||||
AppendText(" in ", Color.Black);
|
||||
AppendText("pakchunk0_s7-WindowsClient.pak", Color.DarkRed, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (IndexOutOfRangeException)
|
||||
{
|
||||
AppendText("[IndexOutOfRangeException] ", Color.Red);
|
||||
AppendText("Can't extract ", Color.Black);
|
||||
AppendText(IDParser[iii].HeroDefinition, Color.SteelBlue);
|
||||
AppendText(" in ", Color.Black);
|
||||
AppendText(PAKsComboBox.SelectedItem.ToString(), Color.DarkRed, true);
|
||||
}
|
||||
}
|
||||
else if (IDParser[iii].WeaponDefinition != null)
|
||||
{
|
||||
var filesPath = Directory.GetFiles(docPath + "\\Extracted", IDParser[iii].WeaponDefinition + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
if (!File.Exists(filesPath))
|
||||
{
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText("Extracting ", Color.Black);
|
||||
AppendText(IDParser[iii].WeaponDefinition, Color.DarkRed, true);
|
||||
|
||||
if (isAllPAKs == false)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + IDParser[iii].WeaponDefinition + "\" \"" + docPath + "\"");
|
||||
});
|
||||
}
|
||||
if (isAllPAKs == true)
|
||||
{
|
||||
await Task.Run(() => {
|
||||
try
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[IDParser[iii].WeaponDefinition] + "\" \"" + IDParser[iii].WeaponDefinition + "\" \"" + docPath + "\"");
|
||||
}
|
||||
catch (KeyNotFoundException ex)
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.Write("[ERROR] ");
|
||||
Console.ForegroundColor = ConsoleColor.White;
|
||||
Console.Write(ex.Message);
|
||||
}
|
||||
});
|
||||
}
|
||||
filesPath = Directory.GetFiles(docPath + "\\Extracted", IDParser[iii].WeaponDefinition + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
}
|
||||
try
|
||||
{
|
||||
if (filesPath != null)
|
||||
{
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(IDParser[iii].WeaponDefinition, Color.DarkRed);
|
||||
AppendText(" successfully extracted to ", Color.Black);
|
||||
AppendText(filesPath.Substring(0, filesPath.LastIndexOf('.')), Color.SteelBlue, true);
|
||||
try
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("serialize \"" + filesPath.Substring(0, filesPath.LastIndexOf('.')) + "\"");
|
||||
});
|
||||
var filesJSON2 = Directory.GetFiles(docPath, IDParser[iii].WeaponDefinition + ".json", SearchOption.AllDirectories).FirstOrDefault();
|
||||
var json2 = JToken.Parse(File.ReadAllText(filesJSON2)).ToString();
|
||||
File.Delete(filesJSON2);
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(IDParser[iii].WeaponDefinition, Color.DarkRed);
|
||||
AppendText(" successfully serialized", Color.Black, true);
|
||||
|
||||
var IDParser2 = ItemsIdParser.FromJson(json2);
|
||||
for (int i2 = 0; i2 < IDParser2.Length; i2++)
|
||||
{
|
||||
if (IDParser2[i2].LargePreviewImage != null)
|
||||
{
|
||||
string textureFile = Path.GetFileName(IDParser2[i2].LargePreviewImage.AssetPathName).Substring(0, Path.GetFileName(IDParser2[i2].LargePreviewImage.AssetPathName).LastIndexOf('.'));
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" detected as a ", Color.Black);
|
||||
AppendText("Texture2D file", Color.SteelBlue, true);
|
||||
|
||||
var filesPath2 = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
if (!File.Exists(filesPath2))
|
||||
{
|
||||
if (currentGUID != "0-0-0-0")
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
|
||||
});
|
||||
filesPath2 = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isAllPAKs == false)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\pakchunk0_s7-WindowsClient.pak" + "\" \"" + textureFile + "\" \"" + docPath + "\"");
|
||||
});
|
||||
}
|
||||
if (isAllPAKs == true)
|
||||
{
|
||||
await Task.Run(() => {
|
||||
try
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[textureFile] + "\" \"" + textureFile + "\" \"" + docPath + "\"");
|
||||
}
|
||||
catch (KeyNotFoundException ex)
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.Write("[ERROR] ");
|
||||
Console.ForegroundColor = ConsoleColor.White;
|
||||
Console.Write(ex.Message);
|
||||
}
|
||||
});
|
||||
}
|
||||
filesPath2 = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
try
|
||||
{
|
||||
if (filesPath2 != null)
|
||||
{
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" successfully extracted to ", Color.Black);
|
||||
AppendText(filesPath2.Substring(0, filesPath2.LastIndexOf('.')), Color.SteelBlue, true);
|
||||
|
||||
itemIconPath = filesPath2.Substring(0, filesPath2.LastIndexOf('.')) + ".png";
|
||||
if (!File.Exists(itemIconPath))
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("texture \"" + filesPath2.Substring(0, filesPath2.LastIndexOf('.')) + "\"");
|
||||
});
|
||||
itemIconPath = filesPath2.Substring(0, filesPath2.LastIndexOf('.')) + ".png";
|
||||
}
|
||||
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" successfully converted to a PNG image with path ", Color.Black);
|
||||
AppendText(itemIconPath, Color.SteelBlue, true);
|
||||
}
|
||||
}
|
||||
catch (IndexOutOfRangeException)
|
||||
{
|
||||
AppendText("[IndexOutOfRangeException] ", Color.Red);
|
||||
AppendText("Can't extract ", Color.Black);
|
||||
AppendText(textureFile, Color.SteelBlue);
|
||||
AppendText(" in ", Color.Black);
|
||||
AppendText("pakchunk0_s7-WindowsClient.pak", Color.DarkRed, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (IndexOutOfRangeException)
|
||||
{
|
||||
AppendText("[IndexOutOfRangeException] ", Color.Red);
|
||||
AppendText("Can't extract ", Color.Black);
|
||||
AppendText(IDParser[iii].WeaponDefinition, Color.SteelBlue);
|
||||
AppendText(" in ", Color.Black);
|
||||
AppendText(PAKsComboBox.SelectedItem.ToString(), Color.DarkRed, true);
|
||||
}
|
||||
}
|
||||
else if (IDParser[iii].LargePreviewImage != null)
|
||||
{
|
||||
string textureFile = Path.GetFileName(IDParser[iii].LargePreviewImage.AssetPathName).Substring(0, Path.GetFileName(IDParser[iii].LargePreviewImage.AssetPathName).LastIndexOf('.'));
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" detected as a ", Color.Black);
|
||||
AppendText("Texture2D file", Color.SteelBlue, true);
|
||||
|
||||
var filesPath = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
if (!File.Exists(filesPath))
|
||||
{
|
||||
if (currentGUID != "0-0-0-0") //DYNAMIC PAK
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
|
||||
});
|
||||
filesPath = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
}
|
||||
else //NORMAL PAK
|
||||
{
|
||||
if (isAllPAKs == false)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
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(() => {
|
||||
try
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[textureFile] + "\" \"" + textureFile + "\" \"" + docPath + "\"");
|
||||
}
|
||||
catch (KeyNotFoundException ex)
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.Write("[ERROR] ");
|
||||
Console.ForegroundColor = ConsoleColor.White;
|
||||
Console.Write(ex.Message);
|
||||
}
|
||||
});
|
||||
}
|
||||
filesPath = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
try
|
||||
{
|
||||
if (filesPath != null)
|
||||
{
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" successfully extracted to ", Color.Black);
|
||||
AppendText(filesPath.Substring(0, filesPath.LastIndexOf('.')), Color.SteelBlue, true);
|
||||
|
||||
itemIconPath = filesPath.Substring(0, filesPath.LastIndexOf('.')) + ".png";
|
||||
if (!File.Exists(itemIconPath))
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("texture \"" + filesPath.Substring(0, filesPath.LastIndexOf('.')) + "\"");
|
||||
});
|
||||
itemIconPath = filesPath.Substring(0, filesPath.LastIndexOf('.')) + ".png";
|
||||
}
|
||||
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" successfully converted to a PNG image with path ", Color.Black);
|
||||
AppendText(itemIconPath, Color.SteelBlue, true);
|
||||
}
|
||||
}
|
||||
catch (IndexOutOfRangeException)
|
||||
{
|
||||
AppendText("[IndexOutOfRangeException] ", Color.Red);
|
||||
AppendText("Can't extract ", Color.Black);
|
||||
AppendText(textureFile, Color.SteelBlue);
|
||||
AppendText(" in ", Color.Black);
|
||||
AppendText("pakchunk0_s7-WindowsClient.pak", Color.DarkRed, true);
|
||||
}
|
||||
}
|
||||
else if (IDParser[iii].SmallPreviewImage != null)
|
||||
{
|
||||
string textureFile = Path.GetFileName(IDParser[iii].SmallPreviewImage.AssetPathName).Substring(0, Path.GetFileName(IDParser[iii].SmallPreviewImage.AssetPathName).LastIndexOf('.'));
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" detected as a ", Color.Black);
|
||||
AppendText("Texture2D file", Color.SteelBlue, true);
|
||||
|
||||
var filesPath = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
if (!File.Exists(filesPath))
|
||||
{
|
||||
if (currentGUID != "0-0-0-0")
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + textureFile + "\" \"" + docPath + "\"");
|
||||
});
|
||||
filesPath = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isAllPAKs == false)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
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].SmallPreviewImage.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(() => {
|
||||
try
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[textureFile] + "\" \"" + textureFile + "\" \"" + docPath + "\"");
|
||||
}
|
||||
catch (KeyNotFoundException ex)
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.Write("[ERROR] ");
|
||||
Console.ForegroundColor = ConsoleColor.White;
|
||||
Console.Write(ex.Message);
|
||||
}
|
||||
});
|
||||
}
|
||||
filesPath = Directory.GetFiles(docPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
try
|
||||
{
|
||||
if (filesPath != null)
|
||||
{
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" successfully extracted to ", Color.Black);
|
||||
AppendText(filesPath.Substring(0, filesPath.LastIndexOf('.')), Color.SteelBlue, true);
|
||||
|
||||
itemIconPath = filesPath.Substring(0, filesPath.LastIndexOf('.')) + ".png";
|
||||
if (!File.Exists(itemIconPath))
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("texture \"" + filesPath.Substring(0, filesPath.LastIndexOf('.')) + "\"");
|
||||
});
|
||||
itemIconPath = filesPath.Substring(0, filesPath.LastIndexOf('.')) + ".png";
|
||||
}
|
||||
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(textureFile, Color.DarkRed);
|
||||
AppendText(" successfully converted to a PNG image with path ", Color.Black);
|
||||
AppendText(itemIconPath, Color.SteelBlue, true);
|
||||
}
|
||||
}
|
||||
catch (IndexOutOfRangeException)
|
||||
{
|
||||
AppendText("[IndexOutOfRangeException] ", Color.Red);
|
||||
AppendText("Can't extract ", Color.Black);
|
||||
AppendText(textureFile, Color.SteelBlue);
|
||||
AppendText(" in ", Color.Black);
|
||||
AppendText("pakchunk0_s7-WindowsClient.pak", Color.DarkRed, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (IndexOutOfRangeException)
|
||||
{
|
||||
AppendText("[IndexOutOfRangeException] ", Color.Red);
|
||||
AppendText("Can't extract ", Color.Black);
|
||||
AppendText("DA_Featured_" + currentItem, Color.SteelBlue);
|
||||
AppendText(" in ", Color.Black);
|
||||
AppendText(PAKsComboBox.SelectedItem.ToString(), Color.DarkRed, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wasFeatured = false;
|
||||
|
|
@ -4072,7 +4842,7 @@ namespace FModel
|
|||
{
|
||||
using (Graphics g = Graphics.FromImage(bmp))
|
||||
{
|
||||
g.DrawImage(selectedImages[i], new PointF(cur_w, cur_h));
|
||||
g.DrawImage(ResizeImage(selectedImages[i], 522, 522), new PointF(cur_w, cur_h));
|
||||
if (num % numperrow == 0)
|
||||
{
|
||||
cur_w = 0;
|
||||
|
|
|
|||
|
|
@ -117,6 +117,9 @@
|
|||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="PAKsComboBox.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="LoadContext.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>277, 17</value>
|
||||
</metadata>
|
||||
|
|
@ -131,7 +134,7 @@
|
|||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACc
|
||||
BwAAAk1TRnQBSQFMAgEBAgEAAXgBAAF4AQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
BwAAAk1TRnQBSQFMAgEBAgEAAYgBAAGIAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user