mirror of
https://github.com/4sval/FModel.git
synced 2026-04-26 16:17:17 -05:00
added featured image option to the icon creator
This commit is contained in:
parent
72af74ccd5
commit
a3075f7560
|
|
@ -52,6 +52,9 @@
|
|||
<setting name="isWatermark" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="loadFeaturedImage" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
</FModel.Properties.Settings>
|
||||
</userSettings>
|
||||
</configuration>
|
||||
|
|
@ -108,6 +108,7 @@
|
|||
<DependentUpon>PAKWindow.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Parser\ChallengeBundleIdParser.cs" />
|
||||
<Compile Include="Parser\FeaturedParser.cs" />
|
||||
<Compile Include="Parser\ItemsIDParser.cs" />
|
||||
<Compile Include="Parser\QuestParser.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
|
|
@ -147,6 +148,7 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="FNTools_Logo.ico" />
|
||||
<None Include="Resources\wTemplateF.png" />
|
||||
<None Include="Resources\wTemplate.png" />
|
||||
<None Include="Resources\Quest.png" />
|
||||
<None Include="Resources\BurbankBigCondensed-Black.otf" />
|
||||
|
|
|
|||
14
FModel/Options.Designer.cs
generated
14
FModel/Options.Designer.cs
generated
|
|
@ -44,6 +44,7 @@
|
|||
this.textBox2 = new System.Windows.Forms.TextBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.groupBox4 = new System.Windows.Forms.GroupBox();
|
||||
this.checkBox8 = new System.Windows.Forms.CheckBox();
|
||||
this.checkBox7 = new System.Windows.Forms.CheckBox();
|
||||
this.filenameLabel = new System.Windows.Forms.Label();
|
||||
this.trackBar1 = new System.Windows.Forms.TrackBar();
|
||||
|
|
@ -214,6 +215,7 @@
|
|||
//
|
||||
// groupBox4
|
||||
//
|
||||
this.groupBox4.Controls.Add(this.checkBox8);
|
||||
this.groupBox4.Controls.Add(this.checkBox7);
|
||||
this.groupBox4.Controls.Add(this.filenameLabel);
|
||||
this.groupBox4.Controls.Add(this.trackBar1);
|
||||
|
|
@ -237,6 +239,17 @@
|
|||
this.groupBox4.TabStop = false;
|
||||
this.groupBox4.Text = "Icon Creation";
|
||||
//
|
||||
// checkBox8
|
||||
//
|
||||
this.checkBox8.AutoSize = true;
|
||||
this.checkBox8.Location = new System.Drawing.Point(6, 79);
|
||||
this.checkBox8.Name = "checkBox8";
|
||||
this.checkBox8.Size = new System.Drawing.Size(177, 17);
|
||||
this.checkBox8.TabIndex = 26;
|
||||
this.checkBox8.Text = "Use Featured Image If Available";
|
||||
this.checkBox8.UseVisualStyleBackColor = true;
|
||||
this.checkBox8.CheckedChanged += new System.EventHandler(this.checkBox8_CheckedChanged);
|
||||
//
|
||||
// checkBox7
|
||||
//
|
||||
this.checkBox7.AutoSize = true;
|
||||
|
|
@ -461,5 +474,6 @@
|
|||
private System.Windows.Forms.TrackBar trackBar2;
|
||||
private System.Windows.Forms.Label filenameLabel;
|
||||
private System.Windows.Forms.CheckBox checkBox7;
|
||||
private System.Windows.Forms.CheckBox checkBox8;
|
||||
}
|
||||
}
|
||||
|
|
@ -96,11 +96,14 @@ namespace FModel
|
|||
comboBox1.SelectedItem = Properties.Settings.Default.IconName;
|
||||
trackBar2.Value = Properties.Settings.Default.wSize;
|
||||
trackBar1.Value = Properties.Settings.Default.wOpacity;
|
||||
checkBox8.Checked = Properties.Settings.Default.loadFeaturedImage;
|
||||
|
||||
button1.Enabled = Properties.Settings.Default.isWatermark;
|
||||
trackBar1.Enabled = Properties.Settings.Default.isWatermark;
|
||||
trackBar2.Enabled = Properties.Settings.Default.isWatermark;
|
||||
|
||||
if (Properties.Settings.Default.loadFeaturedImage == false)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.wFilename))
|
||||
{
|
||||
filenameLabel.Text = "File Name: " + Path.GetFileName(Properties.Settings.Default.wFilename);
|
||||
|
|
@ -114,6 +117,23 @@ namespace FModel
|
|||
|
||||
wPictureBox.Image = bmp;
|
||||
}
|
||||
}
|
||||
if (Properties.Settings.Default.loadFeaturedImage == true)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.wFilename))
|
||||
{
|
||||
filenameLabel.Text = "File Name: " + Path.GetFileName(Properties.Settings.Default.wFilename);
|
||||
|
||||
Bitmap bmp = new Bitmap(Properties.Resources.wTemplateF);
|
||||
Graphics g = Graphics.FromImage(bmp);
|
||||
|
||||
Image watermark = Image.FromFile(Properties.Settings.Default.wFilename);
|
||||
var opacityImage = SetImageOpacity(watermark, (float)Properties.Settings.Default.wOpacity / 100);
|
||||
g.DrawImage(ResizeImage(opacityImage, Properties.Settings.Default.wSize, Properties.Settings.Default.wSize), (522 - Properties.Settings.Default.wSize) / 2, (522 - Properties.Settings.Default.wSize) / 2, Properties.Settings.Default.wSize, Properties.Settings.Default.wSize);
|
||||
|
||||
wPictureBox.Image = bmp;
|
||||
}
|
||||
}
|
||||
|
||||
PAKBefore = Properties.Settings.Default.FortnitePAKs;
|
||||
OutputBefore = Properties.Settings.Default.ExtractOutput;
|
||||
|
|
@ -177,6 +197,14 @@ namespace FModel
|
|||
{
|
||||
Properties.Settings.Default.isWatermark = false;
|
||||
}
|
||||
if (checkBox8.Checked == true)
|
||||
{
|
||||
Properties.Settings.Default.loadFeaturedImage = true;
|
||||
}
|
||||
if (checkBox8.Checked == false)
|
||||
{
|
||||
Properties.Settings.Default.loadFeaturedImage = false;
|
||||
}
|
||||
if (comboBox1.SelectedItem == null)
|
||||
{
|
||||
Properties.Settings.Default.IconName = "Selected Item Name (i.e. CID_001_Athena_Commando_F_Default)";
|
||||
|
|
@ -225,20 +253,40 @@ namespace FModel
|
|||
Properties.Settings.Default.Save();
|
||||
filenameLabel.Text = "File Name: " + Path.GetFileName(Properties.Settings.Default.wFilename);
|
||||
|
||||
if (checkBox8.Checked == false)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.wFilename))
|
||||
{
|
||||
Bitmap bmp = new Bitmap(Properties.Resources.wTemplate);
|
||||
Graphics g = Graphics.FromImage(bmp);
|
||||
|
||||
Image watermark = Image.FromFile(Properties.Settings.Default.wFilename);
|
||||
g.DrawImage(ResizeImage(watermark, trackBar2.Value, trackBar2.Value), (522 - trackBar2.Value) / 2, (522 - trackBar2.Value) / 2, trackBar2.Value, trackBar2.Value);
|
||||
var opacityImage = SetImageOpacity(watermark, (float)trackBar1.Value / 100);
|
||||
g.DrawImage(ResizeImage(opacityImage, trackBar2.Value, trackBar2.Value), (522 - trackBar2.Value) / 2, (522 - trackBar2.Value) / 2, trackBar2.Value, trackBar2.Value);
|
||||
|
||||
wPictureBox.Image = bmp;
|
||||
}
|
||||
}
|
||||
if (checkBox8.Checked == true)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.wFilename))
|
||||
{
|
||||
Bitmap bmp = new Bitmap(Properties.Resources.wTemplateF);
|
||||
Graphics g = Graphics.FromImage(bmp);
|
||||
|
||||
Image watermark = Image.FromFile(Properties.Settings.Default.wFilename);
|
||||
var opacityImage = SetImageOpacity(watermark, (float)trackBar1.Value / 100);
|
||||
g.DrawImage(ResizeImage(opacityImage, trackBar2.Value, trackBar2.Value), (522 - trackBar2.Value) / 2, (522 - trackBar2.Value) / 2, trackBar2.Value, trackBar2.Value);
|
||||
|
||||
wPictureBox.Image = bmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void trackBar2_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (checkBox8.Checked == false)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.wFilename))
|
||||
{
|
||||
|
|
@ -253,8 +301,26 @@ namespace FModel
|
|||
wPictureBox.Refresh();
|
||||
}
|
||||
}
|
||||
if (checkBox8.Checked == true)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.wFilename))
|
||||
{
|
||||
Bitmap bmp = new Bitmap(Properties.Resources.wTemplateF);
|
||||
Graphics g = Graphics.FromImage(bmp);
|
||||
|
||||
Image watermark = Image.FromFile(Properties.Settings.Default.wFilename);
|
||||
var opacityImage = SetImageOpacity(watermark, (float)trackBar1.Value / 100);
|
||||
g.DrawImage(ResizeImage(opacityImage, trackBar2.Value, trackBar2.Value), (522 - trackBar2.Value) / 2, (522 - trackBar2.Value) / 2, trackBar2.Value, trackBar2.Value);
|
||||
|
||||
wPictureBox.Image = bmp;
|
||||
wPictureBox.Refresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void trackBar1_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (checkBox8.Checked == false)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.wFilename))
|
||||
{
|
||||
|
|
@ -269,6 +335,22 @@ namespace FModel
|
|||
wPictureBox.Refresh();
|
||||
}
|
||||
}
|
||||
if (checkBox8.Checked == true)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.wFilename))
|
||||
{
|
||||
Bitmap bmp = new Bitmap(Properties.Resources.wTemplateF);
|
||||
Graphics g = Graphics.FromImage(bmp);
|
||||
|
||||
Image watermark = Image.FromFile(Properties.Settings.Default.wFilename);
|
||||
var opacityImage = SetImageOpacity(watermark, (float)trackBar1.Value / 100);
|
||||
g.DrawImage(ResizeImage(opacityImage, trackBar2.Value, trackBar2.Value), (522 - trackBar2.Value) / 2, (522 - trackBar2.Value) / 2, trackBar2.Value, trackBar2.Value);
|
||||
|
||||
wPictureBox.Image = bmp;
|
||||
wPictureBox.Refresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void checkBox7_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
|
|
@ -285,5 +367,33 @@ namespace FModel
|
|||
trackBar2.Enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void checkBox8_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (checkBox8.Checked == false)
|
||||
{
|
||||
Bitmap bmp = new Bitmap(Properties.Resources.wTemplate);
|
||||
Graphics g = Graphics.FromImage(bmp);
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.wFilename))
|
||||
{
|
||||
Image watermark = Image.FromFile(Properties.Settings.Default.wFilename);
|
||||
var opacityImage = SetImageOpacity(watermark, (float)trackBar1.Value / 100);
|
||||
g.DrawImage(ResizeImage(opacityImage, trackBar2.Value, trackBar2.Value), (522 - trackBar2.Value) / 2, (522 - trackBar2.Value) / 2, trackBar2.Value, trackBar2.Value);
|
||||
}
|
||||
wPictureBox.Image = bmp;
|
||||
}
|
||||
if (checkBox8.Checked == true)
|
||||
{
|
||||
Bitmap bmp = new Bitmap(Properties.Resources.wTemplateF);
|
||||
Graphics g = Graphics.FromImage(bmp);
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.wFilename))
|
||||
{
|
||||
Image watermark = Image.FromFile(Properties.Settings.Default.wFilename);
|
||||
var opacityImage = SetImageOpacity(watermark, (float)trackBar1.Value / 100);
|
||||
g.DrawImage(ResizeImage(opacityImage, trackBar2.Value, trackBar2.Value), (522 - trackBar2.Value) / 2, (522 - trackBar2.Value) / 2, trackBar2.Value, trackBar2.Value);
|
||||
}
|
||||
wPictureBox.Image = bmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using FModel.Items;
|
||||
using FModel.Parser.Featured;
|
||||
using FModel.Challenges;
|
||||
using FModel.Quest;
|
||||
using Newtonsoft.Json;
|
||||
|
|
@ -1181,6 +1182,7 @@ namespace FModel
|
|||
}
|
||||
|
||||
public static string currentItem;
|
||||
public static bool wasFeatured;
|
||||
private async void ExtractAssetButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Stopwatch stopWatch = new Stopwatch();
|
||||
|
|
@ -1299,7 +1301,11 @@ namespace FModel
|
|||
getItemRarity(IDParser[iii], g);
|
||||
|
||||
string itemIconPath = string.Empty;
|
||||
string catalogName = string.Empty;
|
||||
|
||||
if (Properties.Settings.Default.loadFeaturedImage == false)
|
||||
{
|
||||
wasFeatured = false;
|
||||
if (IDParser[iii].HeroDefinition != null)
|
||||
{
|
||||
var filesPath = Directory.GetFiles(docPath + "\\Extracted", IDParser[iii].HeroDefinition + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
|
|
@ -1796,11 +1802,677 @@ namespace FModel
|
|||
AppendText("pakchunk0_s7-WindowsClient.pak", Color.DarkRed, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (Properties.Settings.Default.loadFeaturedImage == true)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (IDParser[iii].DisplayAssetPath.AssetPathName.Contains("/Game/Catalog/DisplayAssets/"))
|
||||
{
|
||||
wasFeatured = true;
|
||||
catalogName = IDParser[iii].DisplayAssetPath.AssetPathName;
|
||||
var filesPath = Directory.GetFiles(docPath + "\\Extracted", catalogName.Substring(catalogName.LastIndexOf('.') + 1) + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
if (!File.Exists(filesPath))
|
||||
{
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText("Extracting ", Color.Black);
|
||||
AppendText(catalogName.Substring(catalogName.LastIndexOf('.') + 1), Color.DarkRed, true);
|
||||
|
||||
if (isAllPAKs == false)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + currentPAK + "\" \"" + catalogName.Substring(catalogName.LastIndexOf('.') + 1) + "\" \"" + docPath + "\"");
|
||||
});
|
||||
}
|
||||
if (isAllPAKs == true)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
jwpmProcess("extract \"" + Properties.Settings.Default.FortnitePAKs + "\\" + AllPAKsDict[catalogName.Substring(catalogName.LastIndexOf('.') + 1)] + "\" \"" + catalogName.Substring(catalogName.LastIndexOf('.') + 1) + "\" \"" + docPath + "\"");
|
||||
}
|
||||
catch (KeyNotFoundException ex)
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.Write("[ERROR] ");
|
||||
Console.ForegroundColor = ConsoleColor.White;
|
||||
Console.Write(ex.Message);
|
||||
}
|
||||
});
|
||||
}
|
||||
filesPath = Directory.GetFiles(docPath + "\\Extracted", catalogName.Substring(catalogName.LastIndexOf('.') + 1) + ".*", SearchOption.AllDirectories).FirstOrDefault();
|
||||
}
|
||||
try
|
||||
{
|
||||
if (filesPath != null)
|
||||
{
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(catalogName.Substring(catalogName.LastIndexOf('.') + 1), 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, catalogName.Substring(catalogName.LastIndexOf('.') + 1) + ".json", SearchOption.AllDirectories).FirstOrDefault();
|
||||
var json2 = JToken.Parse(File.ReadAllText(filesJSON2)).ToString();
|
||||
File.Delete(filesJSON2);
|
||||
AppendText("✔ ", Color.Green);
|
||||
AppendText(catalogName.Substring(catalogName.LastIndexOf('.') + 1), 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)
|
||||
{
|
||||
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(catalogName.Substring(catalogName.LastIndexOf('.') + 1), Color.SteelBlue);
|
||||
AppendText(" in ", Color.Black);
|
||||
AppendText(PAKsComboBox.SelectedItem.ToString(), Color.DarkRed, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (NullReferenceException)
|
||||
{
|
||||
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].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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (File.Exists(itemIconPath))
|
||||
{
|
||||
Image ItemIcon = Image.FromFile(itemIconPath);
|
||||
g.DrawImage(ItemIcon, new Point(5, 5));
|
||||
g.DrawImage(ResizeImage(ItemIcon, 512, 512), new Point(5, 5));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1876,16 +2548,17 @@ namespace FModel
|
|||
if (((ToolStripMenuItem)ExtractAsset.Items[1]).Checked == true)
|
||||
{
|
||||
string nameToSave;
|
||||
if (Properties.Settings.Default.IconName == null || Properties.Settings.Default.IconName == "Selected Item Name (i.e. CID_001_Athena_Commando_F_Default)")
|
||||
if (wasFeatured == true)
|
||||
{
|
||||
nameToSave = currentItem;
|
||||
}
|
||||
else if (Properties.Settings.Default.IconName == "displayName (i.e. Recruit)")
|
||||
{
|
||||
nameToSave = ItemName;
|
||||
nameToSave = catalogName.Substring(catalogName.LastIndexOf('.') + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Properties.Settings.Default.IconName == null || Properties.Settings.Default.IconName == "Selected Item Name (i.e. CID_001_Athena_Commando_F_Default)")
|
||||
nameToSave = currentItem;
|
||||
else if (Properties.Settings.Default.IconName == "displayName (i.e. Recruit)")
|
||||
nameToSave = ItemName;
|
||||
else
|
||||
nameToSave = currentItem;
|
||||
}
|
||||
|
||||
|
|
|
|||
100
FModel/Parser/FeaturedParser.cs
Normal file
100
FModel/Parser/FeaturedParser.cs
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
// <auto-generated />
|
||||
//
|
||||
// To parse this JSON data, add NuGet 'Newtonsoft.Json' then do:
|
||||
//
|
||||
// using FModel.Parser;
|
||||
//
|
||||
// var featuredParser = FeaturedParser.FromJson(jsonString);
|
||||
|
||||
namespace FModel.Parser.Featured
|
||||
{
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using System.Globalization;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
|
||||
public partial class FeaturedParser
|
||||
{
|
||||
[JsonProperty("export_type")]
|
||||
public string ExportType { get; set; }
|
||||
|
||||
[JsonProperty("TileImage")]
|
||||
public ImageLol TileImage { get; set; }
|
||||
|
||||
[JsonProperty("DetailsImage")]
|
||||
public ImageLol DetailsImage { get; set; }
|
||||
|
||||
[JsonProperty("Gradient")]
|
||||
public Gradient Gradient { get; set; }
|
||||
|
||||
[JsonProperty("Background")]
|
||||
public Background Background { get; set; }
|
||||
}
|
||||
|
||||
public partial class Background
|
||||
{
|
||||
[JsonProperty("r")]
|
||||
public double R { get; set; }
|
||||
|
||||
[JsonProperty("g")]
|
||||
public double G { get; set; }
|
||||
|
||||
[JsonProperty("b")]
|
||||
public double B { get; set; }
|
||||
|
||||
[JsonProperty("a")]
|
||||
public long A { get; set; }
|
||||
}
|
||||
|
||||
public partial class ImageLol
|
||||
{
|
||||
[JsonProperty("ImageSize")]
|
||||
public ImageSize ImageSize { get; set; }
|
||||
|
||||
[JsonProperty("ResourceObject")]
|
||||
public string ResourceObject { get; set; }
|
||||
}
|
||||
|
||||
public partial class ImageSize
|
||||
{
|
||||
[JsonProperty("x")]
|
||||
public long X { get; set; }
|
||||
|
||||
[JsonProperty("y")]
|
||||
public long Y { get; set; }
|
||||
}
|
||||
|
||||
public partial class Gradient
|
||||
{
|
||||
[JsonProperty("Start")]
|
||||
public Background Start { get; set; }
|
||||
|
||||
[JsonProperty("Stop")]
|
||||
public Background Stop { get; set; }
|
||||
}
|
||||
|
||||
public partial class FeaturedParser
|
||||
{
|
||||
public static FeaturedParser[] FromJson(string json) => JsonConvert.DeserializeObject<FeaturedParser[]>(json, FModel.Parser.Featured.Converter.Settings);
|
||||
}
|
||||
|
||||
public static class Serialize
|
||||
{
|
||||
public static string ToJson(this FeaturedParser[] self) => JsonConvert.SerializeObject(self, FModel.Parser.Featured.Converter.Settings);
|
||||
}
|
||||
|
||||
internal static class Converter
|
||||
{
|
||||
public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
|
||||
{
|
||||
MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
|
||||
DateParseHandling = DateParseHandling.None,
|
||||
Converters =
|
||||
{
|
||||
new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -52,6 +52,9 @@ namespace FModel.Items
|
|||
|
||||
[JsonProperty("LargePreviewImage")]
|
||||
public PreviewImage LargePreviewImage { get; set; }
|
||||
|
||||
[JsonProperty("DisplayAssetPath")]
|
||||
public DisplayAssetPath DisplayAssetPath { get; set; }
|
||||
}
|
||||
|
||||
public partial class GameplayTags
|
||||
|
|
@ -69,6 +72,15 @@ namespace FModel.Items
|
|||
public string SubPathString { get; set; }
|
||||
}
|
||||
|
||||
public partial class DisplayAssetPath
|
||||
{
|
||||
[JsonProperty("asset_path_name")]
|
||||
public string AssetPathName { get; set; }
|
||||
|
||||
[JsonProperty("sub_path_string")]
|
||||
public string SubPathString { get; set; }
|
||||
}
|
||||
|
||||
public partial class ItemsIdParser
|
||||
{
|
||||
public static ItemsIdParser[] FromJson(string json) => JsonConvert.DeserializeObject<ItemsIdParser[]>(json, FModel.Items.Converter.Settings);
|
||||
|
|
|
|||
10
FModel/Properties/Resources.Designer.cs
generated
10
FModel/Properties/Resources.Designer.cs
generated
|
|
@ -219,5 +219,15 @@ namespace FModel.Properties {
|
|||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap wTemplateF {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("wTemplateF", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -127,6 +127,9 @@
|
|||
<data name="L512" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\L512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="U512" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\U512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="R512" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\R512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
|
@ -136,9 +139,6 @@
|
|||
<data name="FNTools_Logo_Icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\FNTools_Logo.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="BurbankBigCondensed_Black" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\BurbankBigCondensed-Black.otf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="FNTools_Logo" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\FNTools_Logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
|
@ -148,22 +148,25 @@
|
|||
<data name="M512" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\M512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="unknown512" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\unknown512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="BurbankBigCondensed_Bold" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\BurbankBigCondensed-Bold.otf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="E512" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\E512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="T512" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\T512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="U512" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\U512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="wTemplate" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\wTemplate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="BurbankBigCondensed_Black" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\BurbankBigCondensed-Black.otf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="T512" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\T512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="unknown512" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\unknown512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="wTemplateF" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\wTemplateF.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
12
FModel/Properties/Settings.Designer.cs
generated
12
FModel/Properties/Settings.Designer.cs
generated
|
|
@ -201,5 +201,17 @@ namespace FModel.Properties {
|
|||
this["isWatermark"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool loadFeaturedImage {
|
||||
get {
|
||||
return ((bool)(this["loadFeaturedImage"]));
|
||||
}
|
||||
set {
|
||||
this["loadFeaturedImage"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,5 +47,8 @@
|
|||
<Setting Name="isWatermark" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="loadFeaturedImage" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
BIN
FModel/Resources/wTemplateF.png
Normal file
BIN
FModel/Resources/wTemplateF.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
Loading…
Reference in New Issue
Block a user