mirror of
https://github.com/4sval/FModel.git
synced 2026-04-18 23:57:42 -05:00
saved update mode settings + auto save as json + saving my progress on schematics + updated readme with video
This commit is contained in:
parent
f668aab0c6
commit
0bf8c63ba0
|
|
@ -73,9 +73,6 @@
|
|||
<setting name="mergerImagesSaveAs" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="UMCTGalleries" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="tConsKey" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
|
|
@ -91,6 +88,9 @@
|
|||
<setting name="rarityNew" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="UMParameters" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
</FModel.Properties.Settings>
|
||||
</userSettings>
|
||||
<runtime>
|
||||
|
|
|
|||
|
|
@ -150,6 +150,7 @@
|
|||
<Compile Include="Methods\DLLImport.cs" />
|
||||
<Compile Include="Methods\IconGenerator\ItemGenerator\DrawText.cs" />
|
||||
<Compile Include="Methods\IconGenerator\SchematicGenerator\SchematicIconDesign.cs" />
|
||||
<Compile Include="Methods\IconGenerator\SchematicGenerator\SchematicInfoEntry.cs" />
|
||||
<Compile Include="Methods\IconGenerator\SchematicGenerator\SchematicItemInfos.cs" />
|
||||
<Compile Include="Methods\IconGenerator\Translations\LoadLocRes.cs" />
|
||||
<Compile Include="Methods\IconGenerator\Translations\SearchResource.cs" />
|
||||
|
|
@ -261,7 +262,6 @@
|
|||
<None Include="Resources\L512v1.png" />
|
||||
<None Include="Resources\E512v1.png" />
|
||||
<None Include="Resources\C512v1.png" />
|
||||
<None Include="Resources\FModel%281%29.ico" />
|
||||
<None Include="Resources\FModel.ico" />
|
||||
<None Include="Resources\FModel_Logo.png" />
|
||||
<None Include="Resources\wTemplateF.png" />
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using FModel.Properties;
|
||||
|
||||
|
|
@ -10,6 +11,7 @@ namespace FModel.Forms
|
|||
public partial class UpdateModeSettings : Form
|
||||
{
|
||||
private static string _oldLanguage;
|
||||
private static string[] parameters { get; set; }
|
||||
|
||||
public UpdateModeSettings()
|
||||
{
|
||||
|
|
@ -18,6 +20,12 @@ namespace FModel.Forms
|
|||
|
||||
InitializeComponent();
|
||||
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.UMParameters))
|
||||
{
|
||||
parameters = Properties.Settings.Default.UMParameters.Split(',');
|
||||
setCheckListBoxItemChecked(parameters);
|
||||
}
|
||||
|
||||
checkBox1.Checked = Properties.Settings.Default.rarityNew;
|
||||
|
||||
//WATERMARK
|
||||
|
|
@ -58,6 +66,7 @@ namespace FModel.Forms
|
|||
|
||||
private void optionsOKButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
RegisterSettings.updateModeListParameters = new List<string>();
|
||||
|
||||
Properties.Settings.Default.UMFeatured = checkBox8.Checked;
|
||||
|
|
@ -68,29 +77,31 @@ namespace FModel.Forms
|
|||
Properties.Settings.Default.UMOpacity = trackBar1.Value;
|
||||
|
||||
//PARAMETERS
|
||||
if (checkedListBox1.GetItemCheckState(0) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Athena/Items/Cosmetics/"); }
|
||||
if (checkedListBox1.GetItemCheckState(1) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Athena/Items/CosmeticVariantTokens/"); }
|
||||
if (checkedListBox1.GetItemCheckState(2) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Athena/Items/BannerToken/"); }
|
||||
if (checkedListBox1.GetItemCheckState(3) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Athena/Items/ChallengeBundles/"); }
|
||||
if (checkedListBox1.GetItemCheckState(4) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Athena/Items/Consumables/"); }
|
||||
if (checkedListBox1.GetItemCheckState(5) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Athena/Items/Gameplay/"); }
|
||||
if (checkedListBox1.GetItemCheckState(6) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Athena/Items/Traps/"); }
|
||||
if (checkedListBox1.GetItemCheckState(7) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Athena/Items/Weapons/"); }
|
||||
if (checkedListBox1.GetItemCheckState(8) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Heroes/"); }
|
||||
if (checkedListBox1.GetItemCheckState(9) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Items/Defenders/"); }
|
||||
if (checkedListBox1.GetItemCheckState(10) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Items/Workers/"); }
|
||||
if (checkedListBox1.GetItemCheckState(11) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Items/Traps/"); }
|
||||
if (checkedListBox1.GetItemCheckState(12) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Items/Weapons/"); }
|
||||
if (checkedListBox1.GetItemCheckState(13) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Items/Ingredients/"); }
|
||||
if (checkedListBox1.GetItemCheckState(14) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Items/PersistentResources/"); }
|
||||
if (checkedListBox1.GetItemCheckState(15) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Items/CardPacks/"); }
|
||||
if (checkedListBox1.GetItemCheckState(16) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Items/Tokens/"); }
|
||||
if (checkedListBox1.GetItemCheckState(0) == CheckState.Checked) { sb.Append("BRCosmetics,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Athena/Items/Cosmetics/"); }
|
||||
if (checkedListBox1.GetItemCheckState(1) == CheckState.Checked) { sb.Append("BRVariants,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Athena/Items/CosmeticVariantTokens/"); }
|
||||
if (checkedListBox1.GetItemCheckState(2) == CheckState.Checked) { sb.Append("BRBanners,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Athena/Items/BannerToken/"); }
|
||||
if (checkedListBox1.GetItemCheckState(3) == CheckState.Checked) { sb.Append("BRChallenges,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Athena/Items/ChallengeBundles/"); }
|
||||
if (checkedListBox1.GetItemCheckState(4) == CheckState.Checked) { sb.Append("BRConsumables,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Athena/Items/Consumables/"); }
|
||||
if (checkedListBox1.GetItemCheckState(5) == CheckState.Checked) { sb.Append("BRGadgets,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Athena/Items/Gameplay/"); }
|
||||
if (checkedListBox1.GetItemCheckState(6) == CheckState.Checked) { sb.Append("BRTraps,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Athena/Items/Traps/"); }
|
||||
if (checkedListBox1.GetItemCheckState(7) == CheckState.Checked) { sb.Append("BRWeapons,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Athena/Items/Weapons/"); }
|
||||
if (checkedListBox1.GetItemCheckState(8) == CheckState.Checked) { sb.Append("STWHeros,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Heroes/"); }
|
||||
if (checkedListBox1.GetItemCheckState(9) == CheckState.Checked) { sb.Append("STWDefenders,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Items/Defenders/"); }
|
||||
if (checkedListBox1.GetItemCheckState(10) == CheckState.Checked) { sb.Append("STWWorkers,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Items/Workers/"); }
|
||||
if (checkedListBox1.GetItemCheckState(11) == CheckState.Checked) { sb.Append("STWTraps,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Items/Traps/"); }
|
||||
if (checkedListBox1.GetItemCheckState(12) == CheckState.Checked) { sb.Append("STWWeapons,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Items/Weapons/"); }
|
||||
if (checkedListBox1.GetItemCheckState(13) == CheckState.Checked) { sb.Append("STWIngredients,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Items/Ingredients/"); }
|
||||
if (checkedListBox1.GetItemCheckState(14) == CheckState.Checked) { sb.Append("STWResources,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Items/PersistentResources/"); }
|
||||
if (checkedListBox1.GetItemCheckState(15) == CheckState.Checked) { sb.Append("STWCardpacks,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Items/CardPacks/"); }
|
||||
if (checkedListBox1.GetItemCheckState(16) == CheckState.Checked) { sb.Append("Tokens,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/Items/Tokens/"); }
|
||||
|
||||
if (checkedListBox2.GetItemCheckState(0) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/2dAssets/"); }
|
||||
if (checkedListBox2.GetItemCheckState(1) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/UI/Foundation/Textures/BattleRoyale/FeaturedItems/"); }
|
||||
if (checkedListBox2.GetItemCheckState(2) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/UI/Foundation/Textures/Icons/"); }
|
||||
if (checkedListBox2.GetItemCheckState(3) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/UI/Foundation/Textures/Banner/"); }
|
||||
if (checkedListBox2.GetItemCheckState(4) == CheckState.Checked) { RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/UI/Foundation/Textures/LoadingScreens/"); }
|
||||
if (checkedListBox2.GetItemCheckState(0) == CheckState.Checked) { sb.Append("T2DAssets,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/2dAssets/"); }
|
||||
if (checkedListBox2.GetItemCheckState(1) == CheckState.Checked) { sb.Append("TFeatured,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/UI/Foundation/Textures/BattleRoyale/FeaturedItems/"); }
|
||||
if (checkedListBox2.GetItemCheckState(2) == CheckState.Checked) { sb.Append("TIcons,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/UI/Foundation/Textures/Icons/"); }
|
||||
if (checkedListBox2.GetItemCheckState(3) == CheckState.Checked) { sb.Append("TBanners,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/UI/Foundation/Textures/Banner/"); }
|
||||
if (checkedListBox2.GetItemCheckState(4) == CheckState.Checked) { sb.Append("TLoadingScreens,"); RegisterSettings.updateModeListParameters.Add("FortniteGame/Content/UI/Foundation/Textures/LoadingScreens/"); }
|
||||
|
||||
Properties.Settings.Default.UMParameters = sb.ToString();
|
||||
|
||||
//LOCRES
|
||||
Properties.Settings.Default.IconLanguage = comboBox1.SelectedItem.ToString();
|
||||
|
|
@ -103,6 +114,84 @@ namespace FModel.Forms
|
|||
Close();
|
||||
}
|
||||
|
||||
private void setCheckListBoxItemChecked(string[] parameters)
|
||||
{
|
||||
for (int i = 0; i < parameters.Length; i++)
|
||||
{
|
||||
switch (parameters[i])
|
||||
{
|
||||
case "BRCosmetics":
|
||||
checkedListBox1.SetItemChecked(0, true);
|
||||
break;
|
||||
case "BRVariants":
|
||||
checkedListBox1.SetItemChecked(1, true);
|
||||
break;
|
||||
case "BRBanners":
|
||||
checkedListBox1.SetItemChecked(2, true);
|
||||
break;
|
||||
case "BRChallenges":
|
||||
checkedListBox1.SetItemChecked(3, true);
|
||||
break;
|
||||
case "BRConsumables":
|
||||
checkedListBox1.SetItemChecked(4, true);
|
||||
break;
|
||||
case "BRGadgets":
|
||||
checkedListBox1.SetItemChecked(5, true);
|
||||
break;
|
||||
case "BRTraps":
|
||||
checkedListBox1.SetItemChecked(6, true);
|
||||
break;
|
||||
case "BRWeapons":
|
||||
checkedListBox1.SetItemChecked(7, true);
|
||||
break;
|
||||
case "STWHeros":
|
||||
checkedListBox1.SetItemChecked(8, true);
|
||||
break;
|
||||
case "STWDefenders":
|
||||
checkedListBox1.SetItemChecked(9, true);
|
||||
break;
|
||||
case "STWWorkers":
|
||||
checkedListBox1.SetItemChecked(10, true);
|
||||
break;
|
||||
case "STWTraps":
|
||||
checkedListBox1.SetItemChecked(11, true);
|
||||
break;
|
||||
case "STWWeapons":
|
||||
checkedListBox1.SetItemChecked(12, true);
|
||||
break;
|
||||
case "STWIngredients":
|
||||
checkedListBox1.SetItemChecked(13, true);
|
||||
break;
|
||||
case "STWResources":
|
||||
checkedListBox1.SetItemChecked(14, true);
|
||||
break;
|
||||
case "STWCardpacks":
|
||||
checkedListBox1.SetItemChecked(15, true);
|
||||
break;
|
||||
case "Tokens":
|
||||
checkedListBox1.SetItemChecked(16, true);
|
||||
break;
|
||||
case "T2DAssets":
|
||||
checkedListBox2.SetItemChecked(0, true);
|
||||
break;
|
||||
case "TFeatured":
|
||||
checkedListBox2.SetItemChecked(1, true);
|
||||
break;
|
||||
case "TIcons":
|
||||
checkedListBox2.SetItemChecked(2, true);
|
||||
break;
|
||||
case "TBanners":
|
||||
checkedListBox2.SetItemChecked(3, true);
|
||||
break;
|
||||
case "TLoadingScreens":
|
||||
checkedListBox2.SetItemChecked(4, true);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#region SELECT WATERMARK
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
|
|
|||
40
FModel/MainWindow.Designer.cs
generated
40
FModel/MainWindow.Designer.cs
generated
|
|
@ -49,6 +49,8 @@ namespace FModel
|
|||
this.saveAsJSONToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.copySelectedFilePathToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.openExtractionFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.imageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.saveImageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.autoSaveImagesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
|
@ -85,8 +87,8 @@ namespace FModel
|
|||
this.saveAsJSONToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.extractFolderContentsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.openExtractionFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.autoSaveAsJSONToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.statusStrip1.SuspendLayout();
|
||||
this.menuStrip1.SuspendLayout();
|
||||
this.panel1.SuspendLayout();
|
||||
|
|
@ -223,7 +225,9 @@ namespace FModel
|
|||
//
|
||||
this.filesToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.searchToolStripMenuItem,
|
||||
this.toolStripSeparator7,
|
||||
this.saveAsJSONToolStripMenuItem,
|
||||
this.autoSaveAsJSONToolStripMenuItem,
|
||||
this.toolStripSeparator5,
|
||||
this.copySelectedFilePathToolStripMenuItem,
|
||||
this.toolStripSeparator6,
|
||||
|
|
@ -260,6 +264,18 @@ namespace FModel
|
|||
this.copySelectedFilePathToolStripMenuItem.Text = "Copy Selected File Path";
|
||||
this.copySelectedFilePathToolStripMenuItem.Click += new System.EventHandler(this.CopySelectedFilePathToolStripMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator6
|
||||
//
|
||||
this.toolStripSeparator6.Name = "toolStripSeparator6";
|
||||
this.toolStripSeparator6.Size = new System.Drawing.Size(194, 6);
|
||||
//
|
||||
// openExtractionFolderToolStripMenuItem
|
||||
//
|
||||
this.openExtractionFolderToolStripMenuItem.Name = "openExtractionFolderToolStripMenuItem";
|
||||
this.openExtractionFolderToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
|
||||
this.openExtractionFolderToolStripMenuItem.Text = "Open Extraction Folder";
|
||||
this.openExtractionFolderToolStripMenuItem.Click += new System.EventHandler(this.openExtractionFolderToolStripMenuItem_Click);
|
||||
//
|
||||
// imageToolStripMenuItem
|
||||
//
|
||||
this.imageToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
|
|
@ -309,7 +325,7 @@ namespace FModel
|
|||
this.tweetToolStripMenuItem.Name = "tweetToolStripMenuItem";
|
||||
this.tweetToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F4;
|
||||
this.tweetToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
|
||||
this.tweetToolStripMenuItem.Text = "Tweet";
|
||||
this.tweetToolStripMenuItem.Text = "[BETA] Tweet";
|
||||
this.tweetToolStripMenuItem.Click += new System.EventHandler(this.TweetToolStripMenuItem_Click);
|
||||
//
|
||||
// helpToolStripMenuItem
|
||||
|
|
@ -600,17 +616,17 @@ namespace FModel
|
|||
this.extractFolderContentsToolStripMenuItem.Text = "Extract Folder Contents";
|
||||
this.extractFolderContentsToolStripMenuItem.Click += new System.EventHandler(this.ExtractFolderContentsToolStripMenuItem_Click);
|
||||
//
|
||||
// openExtractionFolderToolStripMenuItem
|
||||
// toolStripSeparator7
|
||||
//
|
||||
this.openExtractionFolderToolStripMenuItem.Name = "openExtractionFolderToolStripMenuItem";
|
||||
this.openExtractionFolderToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
|
||||
this.openExtractionFolderToolStripMenuItem.Text = "Open Extraction Folder";
|
||||
this.openExtractionFolderToolStripMenuItem.Click += new System.EventHandler(this.openExtractionFolderToolStripMenuItem_Click);
|
||||
this.toolStripSeparator7.Name = "toolStripSeparator7";
|
||||
this.toolStripSeparator7.Size = new System.Drawing.Size(194, 6);
|
||||
//
|
||||
// toolStripSeparator6
|
||||
// autoSaveAsJSONToolStripMenuItem
|
||||
//
|
||||
this.toolStripSeparator6.Name = "toolStripSeparator6";
|
||||
this.toolStripSeparator6.Size = new System.Drawing.Size(194, 6);
|
||||
this.autoSaveAsJSONToolStripMenuItem.CheckOnClick = true;
|
||||
this.autoSaveAsJSONToolStripMenuItem.Name = "autoSaveAsJSONToolStripMenuItem";
|
||||
this.autoSaveAsJSONToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
|
||||
this.autoSaveAsJSONToolStripMenuItem.Text = "Auto Save as JSON";
|
||||
//
|
||||
// MainWindow
|
||||
//
|
||||
|
|
@ -704,6 +720,8 @@ namespace FModel
|
|||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator6;
|
||||
private System.Windows.Forms.ToolStripMenuItem openExtractionFolderToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator7;
|
||||
private System.Windows.Forms.ToolStripMenuItem autoSaveAsJSONToolStripMenuItem;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -397,7 +397,7 @@ namespace FModel
|
|||
{
|
||||
TreeParsePath(treeView1.Nodes, PakHelper.PakAsTxt[i].Replace(PakHelper.PakAsTxt[i].Split('/').Last(), ""));
|
||||
}
|
||||
Utilities.ExpandToLevel(treeView1.Nodes, 2);
|
||||
Utilities.ExpandToLevel(treeView1.Nodes, 1);
|
||||
treeView1.EndUpdate();
|
||||
}));
|
||||
new UpdateMyState(Settings.Default.PAKsPath + "\\" + selectedPak.ClickedItem.Text, "Success").ChangeProcessState();
|
||||
|
|
@ -651,6 +651,7 @@ namespace FModel
|
|||
|
||||
_selectedItemsArray = null;
|
||||
Checking.UmWorking = false;
|
||||
GC.Collect();
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
updateModeToolStripMenuItem.Checked = false;
|
||||
|
|
@ -1044,18 +1045,10 @@ namespace FModel
|
|||
|
||||
DrawText.DrawTexts(theItem, g, specialMode);
|
||||
|
||||
if (autoSaveImagesToolStripMenuItem.Checked || Checking.UmWorking)
|
||||
{
|
||||
bmp.Save(App.DefaultOutputPath + "\\Icons\\" + ThePak.CurrentUsedItem + ".png", ImageFormat.Png);
|
||||
|
||||
if (File.Exists(App.DefaultOutputPath + "\\Icons\\" + ThePak.CurrentUsedItem + ".png"))
|
||||
{
|
||||
new UpdateMyConsole(ThePak.CurrentUsedItem, Color.DarkRed).AppendToConsole();
|
||||
new UpdateMyConsole(" successfully saved", Color.Black, true).AppendToConsole();
|
||||
}
|
||||
}
|
||||
|
||||
pictureBox1.Image = bmp;
|
||||
|
||||
AutoSaveImage();
|
||||
AutoSaveAsJSON();
|
||||
g.Dispose();
|
||||
}
|
||||
|
||||
|
|
@ -1139,72 +1132,20 @@ namespace FModel
|
|||
pictureBox1.Image = newImg;
|
||||
}
|
||||
|
||||
if (autoSaveImagesToolStripMenuItem.Checked || Checking.UmWorking)
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
pictureBox1.Image.Save(App.DefaultOutputPath + "\\Icons\\" + ThePak.CurrentUsedItem + ".png", ImageFormat.Png);
|
||||
}));
|
||||
|
||||
if (File.Exists(App.DefaultOutputPath + "\\Icons\\" + ThePak.CurrentUsedItem + ".png"))
|
||||
{
|
||||
new UpdateMyConsole(ThePak.CurrentUsedItem, Color.DarkRed).AppendToConsole();
|
||||
new UpdateMyConsole(" successfully saved", Color.Black, true).AppendToConsole();
|
||||
}
|
||||
}
|
||||
AutoSaveImage();
|
||||
AutoSaveAsJSON();
|
||||
BundleDesign.toDrawOn.Dispose(); //actually this is the most useful thing in this method
|
||||
}
|
||||
|
||||
private void CreateSchematicIcon(JToken theItem)
|
||||
{
|
||||
SchematicIconDesign.toDrawOn = SchematicIconDesign.createGraphic(522, 822);
|
||||
JToken craftedItem = SchematicItemInfos.getSchematicRecipeResult(theItem);
|
||||
Rarity.DrawRarity(craftedItem, SchematicIconDesign.toDrawOn);
|
||||
|
||||
ItemIcon.ItemIconPath = string.Empty;
|
||||
ItemIcon.GetItemIcon(craftedItem, Settings.Default.loadFeaturedImage);
|
||||
if (File.Exists(ItemIcon.ItemIconPath))
|
||||
{
|
||||
Image itemIcon;
|
||||
using (var bmpTemp = new Bitmap(ItemIcon.ItemIconPath))
|
||||
{
|
||||
itemIcon = new Bitmap(bmpTemp);
|
||||
}
|
||||
SchematicIconDesign.toDrawOn.DrawImage(ImageUtilities.ResizeImage(itemIcon, 512, 512), new Point(5, 5));
|
||||
}
|
||||
else
|
||||
{
|
||||
Image itemIcon = Resources.unknown512;
|
||||
SchematicIconDesign.toDrawOn.DrawImage(itemIcon, new Point(0, 0));
|
||||
}
|
||||
|
||||
if (Settings.Default.rarityNew)
|
||||
{
|
||||
GraphicsPath p = new GraphicsPath();
|
||||
p.StartFigure();
|
||||
p.AddLine(4, 438, 517, 383);
|
||||
p.AddLine(517, 383, 517, 383 + 134);
|
||||
p.AddLine(4, 383 + 134, 4, 383 + 134);
|
||||
p.AddLine(4, 383 + 134, 4, 438);
|
||||
p.CloseFigure();
|
||||
SchematicIconDesign.toDrawOn.FillPath(new SolidBrush(Color.FromArgb(70, 0, 0, 50)), p);
|
||||
}
|
||||
else { SchematicIconDesign.toDrawOn.FillRectangle(new SolidBrush(Color.FromArgb(70, 0, 0, 50)), new Rectangle(5, 383, 512, 134)); }
|
||||
|
||||
DrawText.DrawTexts(craftedItem, SchematicIconDesign.toDrawOn, "");
|
||||
|
||||
if (autoSaveImagesToolStripMenuItem.Checked || Checking.UmWorking)
|
||||
{
|
||||
SchematicIconDesign.schematicBitmap.Save(App.DefaultOutputPath + "\\Icons\\" + ThePak.CurrentUsedItem + ".png", ImageFormat.Png);
|
||||
|
||||
if (File.Exists(App.DefaultOutputPath + "\\Icons\\" + ThePak.CurrentUsedItem + ".png"))
|
||||
{
|
||||
new UpdateMyConsole(ThePak.CurrentUsedItem, Color.DarkRed).AppendToConsole();
|
||||
new UpdateMyConsole(" successfully saved", Color.Black, true).AppendToConsole();
|
||||
}
|
||||
}
|
||||
SchematicIconDesign.createItemDefinitionIcon(theItem);
|
||||
SchematicIconDesign.createIngredientIcon();
|
||||
|
||||
pictureBox1.Image = SchematicIconDesign.schematicBitmap;
|
||||
|
||||
AutoSaveImage();
|
||||
AutoSaveAsJSON();
|
||||
SchematicIconDesign.toDrawOn.Dispose();
|
||||
}
|
||||
|
||||
|
|
@ -1317,6 +1258,7 @@ namespace FModel
|
|||
}
|
||||
|
||||
_selectedItemsArray = null;
|
||||
GC.Collect();
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
StopButton.Enabled = false;
|
||||
|
|
@ -1618,6 +1560,50 @@ namespace FModel
|
|||
}
|
||||
}
|
||||
}
|
||||
private void AutoSaveAsJSON()
|
||||
{
|
||||
if (autoSaveAsJSONToolStripMenuItem.Checked)
|
||||
{
|
||||
string text = string.Empty;
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
text = scintilla1.Text;
|
||||
}));
|
||||
|
||||
if (!string.IsNullOrEmpty(text))
|
||||
{
|
||||
string filename = ThePak.CurrentUsedItem.Contains('.') ? ThePak.CurrentUsedItem.Substring(0, ThePak.CurrentUsedItem.LastIndexOf('.')) : ThePak.CurrentUsedItem;
|
||||
File.WriteAllText(App.DefaultOutputPath + "\\Saved_JSON\\" + filename + ".json", text);
|
||||
|
||||
if (File.Exists(App.DefaultOutputPath + "\\Saved_JSON\\" + filename + ".json"))
|
||||
{
|
||||
new UpdateMyConsole(ThePak.CurrentUsedItem, Color.DarkRed).AppendToConsole();
|
||||
new UpdateMyConsole("'s properties successfully saved", Color.Black, true).AppendToConsole();
|
||||
}
|
||||
else
|
||||
{
|
||||
new UpdateMyConsole("Fail to save ", Color.Black).AppendToConsole();
|
||||
new UpdateMyConsole(ThePak.CurrentUsedItem, Color.DarkRed, true).AppendToConsole();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
private void AutoSaveImage()
|
||||
{
|
||||
if (autoSaveImagesToolStripMenuItem.Checked || Checking.UmWorking)
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
pictureBox1.Image.Save(App.DefaultOutputPath + "\\Icons\\" + ThePak.CurrentUsedItem + ".png", ImageFormat.Png);
|
||||
}));
|
||||
|
||||
if (File.Exists(App.DefaultOutputPath + "\\Icons\\" + ThePak.CurrentUsedItem + ".png"))
|
||||
{
|
||||
new UpdateMyConsole(ThePak.CurrentUsedItem, Color.DarkRed).AppendToConsole();
|
||||
new UpdateMyConsole("'s image successfully saved", Color.Black, true).AppendToConsole();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void openExtractionFolderToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@
|
|||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABa
|
||||
CAAAAk1TRnQBSQFMAgEBAgEAAdgBAQHYAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
CAAAAk1TRnQBSQFMAgEBAgEAAegBAQHoAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
|
|
|
|||
|
|
@ -1,6 +1,13 @@
|
|||
using System.Drawing;
|
||||
using csharp_wick;
|
||||
using FModel.Properties;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Drawing.Text;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
namespace FModel
|
||||
{
|
||||
|
|
@ -17,5 +24,113 @@ namespace FModel
|
|||
g.SmoothingMode = SmoothingMode.HighQuality;
|
||||
return g;
|
||||
}
|
||||
|
||||
public static void createItemDefinitionIcon(JToken theItem)
|
||||
{
|
||||
JToken craftedItem = SchematicItemInfos.setSchematicData(theItem);
|
||||
toDrawOn = createGraphic(522, 522 + (75 * SchematicItemInfos.schematicInfoList.Count));
|
||||
Rarity.DrawRarity(craftedItem, toDrawOn);
|
||||
|
||||
ItemIcon.ItemIconPath = string.Empty;
|
||||
ItemIcon.GetItemIcon(craftedItem, Settings.Default.loadFeaturedImage);
|
||||
if (File.Exists(ItemIcon.ItemIconPath))
|
||||
{
|
||||
Image itemIcon;
|
||||
using (var bmpTemp = new Bitmap(ItemIcon.ItemIconPath))
|
||||
{
|
||||
itemIcon = new Bitmap(bmpTemp);
|
||||
}
|
||||
toDrawOn.DrawImage(ImageUtilities.ResizeImage(itemIcon, 512, 512), new Point(5, 5));
|
||||
}
|
||||
else
|
||||
{
|
||||
Image itemIcon = Resources.unknown512;
|
||||
toDrawOn.DrawImage(itemIcon, new Point(0, 0));
|
||||
}
|
||||
|
||||
if (Settings.Default.rarityNew)
|
||||
{
|
||||
GraphicsPath p = new GraphicsPath();
|
||||
p.StartFigure();
|
||||
p.AddLine(4, 438, 517, 383);
|
||||
p.AddLine(517, 383, 517, 383 + 134);
|
||||
p.AddLine(4, 383 + 134, 4, 383 + 134);
|
||||
p.AddLine(4, 383 + 134, 4, 438);
|
||||
p.CloseFigure();
|
||||
toDrawOn.FillPath(new SolidBrush(Color.FromArgb(70, 0, 0, 50)), p);
|
||||
}
|
||||
else { toDrawOn.FillRectangle(new SolidBrush(Color.FromArgb(70, 0, 0, 50)), new Rectangle(5, 383, 512, 134)); }
|
||||
|
||||
DrawText.DrawTexts(craftedItem, toDrawOn, "");
|
||||
}
|
||||
|
||||
public static void createIngredientIcon()
|
||||
{
|
||||
for (int i = 0; i < SchematicItemInfos.schematicInfoList.Count; i++)
|
||||
{
|
||||
string ingredientsFileName = ThePak.AllpaksDictionary.Where(x => string.Equals(x.Key, SchematicItemInfos.schematicInfoList[i].theIngredientItemDefinition, StringComparison.CurrentCultureIgnoreCase)).Select(d => d.Key).FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(ingredientsFileName))
|
||||
{
|
||||
string extractedIconPath = JohnWick.ExtractAsset(ThePak.AllpaksDictionary[ingredientsFileName], ingredientsFileName);
|
||||
if (extractedIconPath != null)
|
||||
{
|
||||
if (extractedIconPath.Contains(".uasset") || extractedIconPath.Contains(".uexp") || extractedIconPath.Contains(".ubulk"))
|
||||
{
|
||||
JohnWick.MyAsset = new PakAsset(extractedIconPath.Substring(0, extractedIconPath.LastIndexOf('.')));
|
||||
try
|
||||
{
|
||||
if (JohnWick.MyAsset.GetSerialized() != null)
|
||||
{
|
||||
dynamic AssetData = JsonConvert.DeserializeObject(JohnWick.MyAsset.GetSerialized());
|
||||
JArray AssetArray = JArray.FromObject(AssetData);
|
||||
|
||||
JToken rarity = AssetData[0]["Rarity"];
|
||||
if (rarity != null)
|
||||
{
|
||||
fillSchematicIcon(rarity, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (JsonSerializationException)
|
||||
{
|
||||
//do not crash when JsonSerialization does weird stuff
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void fillSchematicIcon(JToken rarity, int i)
|
||||
{
|
||||
Color rarityColor;
|
||||
switch(rarity.Value<string>())
|
||||
{
|
||||
case "EFortRarity::Transcendent":
|
||||
rarityColor = Color.FromArgb(255, 155, 39, 69);
|
||||
break;
|
||||
case "EFortRarity::Mythic":
|
||||
rarityColor = Color.FromArgb(255, 170, 143, 47);
|
||||
break;
|
||||
case "EFortRarity::Legendary":
|
||||
rarityColor = Color.FromArgb(255, 170, 96, 47);
|
||||
break;
|
||||
case "EFortRarity::Epic":
|
||||
case "EFortRarity::Quality":
|
||||
rarityColor = Color.FromArgb(255, 96, 47, 170);
|
||||
break;
|
||||
case "EFortRarity::Rare":
|
||||
rarityColor = Color.FromArgb(255, 55, 92, 163);
|
||||
break;
|
||||
case "EFortRarity::Common":
|
||||
rarityColor = Color.FromArgb(255, 109, 109, 109);
|
||||
break;
|
||||
default:
|
||||
rarityColor = Color.FromArgb(255, 87, 155, 39);
|
||||
break;
|
||||
}
|
||||
|
||||
toDrawOn.FillRectangle(new SolidBrush(rarityColor), new Rectangle(0, 447 + (75 * i), schematicBitmap.Width, 75));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace FModel
|
||||
{
|
||||
public struct SchematicInfoEntry : IEquatable<SchematicInfoEntry>
|
||||
{
|
||||
internal SchematicInfoEntry(string myIngredientItemDefinition, string myIngredientQuantity)
|
||||
{
|
||||
theIngredientItemDefinition = myIngredientItemDefinition;
|
||||
theIngredientQuantity = myIngredientQuantity;
|
||||
}
|
||||
public string theIngredientItemDefinition { get; set; }
|
||||
public string theIngredientQuantity { get; set; }
|
||||
|
||||
bool IEquatable<SchematicInfoEntry>.Equals(SchematicInfoEntry other)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,14 +2,18 @@
|
|||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace FModel
|
||||
{
|
||||
class SchematicItemInfos
|
||||
{
|
||||
public static JToken getSchematicRecipeResult(JToken schematicAsset)
|
||||
public static List<SchematicInfoEntry> schematicInfoList { get; set; }
|
||||
|
||||
public static JToken setSchematicData(JToken schematicAsset)
|
||||
{
|
||||
schematicInfoList = new List<SchematicInfoEntry>();
|
||||
JToken toReturn = null;
|
||||
|
||||
JToken craftingRecipe = schematicAsset["CraftingRecipe"];
|
||||
|
|
@ -34,36 +38,8 @@ namespace FModel
|
|||
JToken weaponRowName = ((JObject)AssetArray[0]).GetValue(craftingRecipe["RowName"].Value<string>(), StringComparison.OrdinalIgnoreCase);
|
||||
if (weaponRowName != null)
|
||||
{
|
||||
JToken recipeResults = weaponRowName["RecipeResults"];
|
||||
if (recipeResults != null)
|
||||
{
|
||||
JToken primaryAssetName = recipeResults[0]["ItemPrimaryAssetId"]["PrimaryAssetName"];
|
||||
if (primaryAssetName != null)
|
||||
{
|
||||
string primaryAssetNameInDict = ThePak.AllpaksDictionary.Where(x => string.Equals(x.Key, primaryAssetName.Value<string>(), StringComparison.CurrentCultureIgnoreCase)).Select(d => d.Key).FirstOrDefault();
|
||||
string primaryAssetTableFilePath = JohnWick.ExtractAsset(ThePak.AllpaksDictionary[primaryAssetNameInDict], primaryAssetNameInDict);
|
||||
if (!string.IsNullOrEmpty(primaryAssetTableFilePath))
|
||||
{
|
||||
if (primaryAssetTableFilePath.Contains(".uasset") || primaryAssetTableFilePath.Contains(".uexp") || primaryAssetTableFilePath.Contains(".ubulk"))
|
||||
{
|
||||
JohnWick.MyAsset = new PakAsset(primaryAssetTableFilePath.Substring(0, primaryAssetTableFilePath.LastIndexOf('.')));
|
||||
try
|
||||
{
|
||||
if (JohnWick.MyAsset.GetSerialized() != null)
|
||||
{
|
||||
dynamic primaryAssetData = JsonConvert.DeserializeObject(JohnWick.MyAsset.GetSerialized());
|
||||
JArray primaryAssetArray = JArray.FromObject(primaryAssetData);
|
||||
toReturn = primaryAssetArray[0];
|
||||
}
|
||||
}
|
||||
catch (JsonSerializationException)
|
||||
{
|
||||
//do not crash when JsonSerialization does weird stuff
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
toReturn = getSchematicRecipeResult(weaponRowName);
|
||||
registerSchematicRecipeCosts(weaponRowName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -78,5 +54,64 @@ namespace FModel
|
|||
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
public static JToken getSchematicRecipeResult(JToken schematicDataTable)
|
||||
{
|
||||
JToken toReturn = null;
|
||||
|
||||
JToken recipeResults = schematicDataTable["RecipeResults"];
|
||||
if (recipeResults != null)
|
||||
{
|
||||
JToken primaryAssetName = recipeResults[0]["ItemPrimaryAssetId"]["PrimaryAssetName"];
|
||||
if (primaryAssetName != null)
|
||||
{
|
||||
string primaryAssetNameInDict = ThePak.AllpaksDictionary.Where(x => string.Equals(x.Key, primaryAssetName.Value<string>(), StringComparison.CurrentCultureIgnoreCase)).Select(d => d.Key).FirstOrDefault();
|
||||
string primaryAssetTableFilePath = JohnWick.ExtractAsset(ThePak.AllpaksDictionary[primaryAssetNameInDict], primaryAssetNameInDict);
|
||||
if (!string.IsNullOrEmpty(primaryAssetTableFilePath))
|
||||
{
|
||||
if (primaryAssetTableFilePath.Contains(".uasset") || primaryAssetTableFilePath.Contains(".uexp") || primaryAssetTableFilePath.Contains(".ubulk"))
|
||||
{
|
||||
JohnWick.MyAsset = new PakAsset(primaryAssetTableFilePath.Substring(0, primaryAssetTableFilePath.LastIndexOf('.')));
|
||||
try
|
||||
{
|
||||
if (JohnWick.MyAsset.GetSerialized() != null)
|
||||
{
|
||||
dynamic primaryAssetData = JsonConvert.DeserializeObject(JohnWick.MyAsset.GetSerialized());
|
||||
JArray primaryAssetArray = JArray.FromObject(primaryAssetData);
|
||||
toReturn = primaryAssetArray[0];
|
||||
}
|
||||
}
|
||||
catch (JsonSerializationException)
|
||||
{
|
||||
//do not crash when JsonSerialization does weird stuff
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
public static void registerSchematicRecipeCosts(JToken schematicDataTable)
|
||||
{
|
||||
JToken recipeCosts = schematicDataTable["RecipeCosts"];
|
||||
if (recipeCosts != null)
|
||||
{
|
||||
JArray recipeCostsArray = recipeCosts.Value<JArray>();
|
||||
foreach (JToken token in recipeCostsArray)
|
||||
{
|
||||
JToken primaryAssetName = token["ItemPrimaryAssetId"]["PrimaryAssetName"];
|
||||
JToken quantity = token["Quantity"];
|
||||
if (primaryAssetName != null && quantity != null)
|
||||
{
|
||||
System.Diagnostics.Debug.WriteLine("\"" + primaryAssetName.Value<string>() + "\"\t\t" + quantity.Value<string>());
|
||||
SchematicInfoEntry currentEntry = new SchematicInfoEntry(primaryAssetName.Value<string>(), quantity.Value<string>());
|
||||
bool isAlreadyAdded = schematicInfoList.Any(item => item.theIngredientItemDefinition.Equals(currentEntry.theIngredientItemDefinition, StringComparison.InvariantCultureIgnoreCase) && item.theIngredientQuantity == currentEntry.theIngredientQuantity);
|
||||
if (!isAlreadyAdded) { schematicInfoList.Add(currentEntry); }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,6 +60,8 @@ namespace FModel
|
|||
AssetPath = WriteFile(results[i], b).Replace("/", "\\");
|
||||
}
|
||||
|
||||
pakExtractor = null;
|
||||
pakFiles = null;
|
||||
return AssetPath;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ namespace FModel
|
|||
|
||||
RegisterInDict(ThePak.mainPaksList[i].thePak, CurrentUsedPakLines, mountPoint, theSinglePak, loadAllPaKs);
|
||||
}
|
||||
CurrentUsedPakLines = null;
|
||||
}
|
||||
if (bMainKeyWorking) { LoadLocRes.LoadMySelectedLocRes(Settings.Default.IconLanguage); }
|
||||
|
||||
|
|
@ -86,6 +87,7 @@ namespace FModel
|
|||
|
||||
RegisterInDict(ThePak.dynamicPaksList[i].thePak, CurrentUsedPakLines, mountPoint, theSinglePak, loadAllPaKs);
|
||||
}
|
||||
CurrentUsedPakLines = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -95,6 +97,7 @@ namespace FModel
|
|||
}
|
||||
|
||||
new UpdateMyState("Building tree, please wait...", "Loading").ChangeProcessState();
|
||||
GC.Collect();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
24
FModel/Properties/Settings.Designer.cs
generated
24
FModel/Properties/Settings.Designer.cs
generated
|
|
@ -275,18 +275,6 @@ namespace FModel.Properties {
|
|||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool UMCTGalleries {
|
||||
get {
|
||||
return ((bool)(this["UMCTGalleries"]));
|
||||
}
|
||||
set {
|
||||
this["UMCTGalleries"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
|
|
@ -346,5 +334,17 @@ namespace FModel.Properties {
|
|||
this["rarityNew"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string UMParameters {
|
||||
get {
|
||||
return ((string)(this["UMParameters"]));
|
||||
}
|
||||
set {
|
||||
this["UMParameters"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,9 +65,6 @@
|
|||
<Setting Name="mergerImagesSaveAs" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="UMCTGalleries" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="tConsKey" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
|
|
@ -83,5 +80,8 @@
|
|||
<Setting Name="rarityNew" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="UMParameters" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# FModel
|
||||
# FModel
|
||||
[](https://github.com/iAmAsval/FModel/releases)
|
||||
[](https://github.com/iAmAsval/FModel//releases/latest)
|
||||
[](https://github.com/iAmAsval/FModel/blob/master/LICENSE)
|
||||
|
|
@ -13,7 +13,10 @@
|
|||
### Download
|
||||
[](https://github.com/iAmAsval/FModel/releases/latest)
|
||||
### How To Use
|
||||
><p align="center"><a href="https://www.youtube.com/watch?v=rWlux5vg9Xs">Video Tutorial by FireMonkey</a></p>
|
||||
|
||||
**1.** Once you start the executable, you'll be asked to set your path to your Fortnite .PAK files. Meanwhile a `FModel` subfolder will be created in your `Documents` folder.
|
||||
|
||||

|
||||
|
||||
**2.** Restart the executable, go to the AES Manager and add your AES Keys, click **Load** and select your .PAK file
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user