mirror of
https://github.com/4sval/FModel.git
synced 2026-03-22 01:34:37 -05:00
custom challenges watermark + drawstring reward id + fixed language pack loading when it wasn't needed
This commit is contained in:
parent
b432ea1235
commit
4e23d23dfb
|
|
@ -133,6 +133,12 @@
|
|||
<setting name="IconLanguage" serializeAs="String">
|
||||
<value>English</value>
|
||||
</setting>
|
||||
<setting name="challengesDebug" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="challengesWatermark" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
</FModel.Properties.Settings>
|
||||
</userSettings>
|
||||
<runtime>
|
||||
|
|
|
|||
56
FModel/Forms/Settings.Designer.cs
generated
56
FModel/Forms/Settings.Designer.cs
generated
|
|
@ -61,6 +61,10 @@ namespace FModel.Forms
|
|||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.textBox4 = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.groupBox6 = new System.Windows.Forms.GroupBox();
|
||||
this.checkBox2 = new System.Windows.Forms.CheckBox();
|
||||
this.textBox6 = new System.Windows.Forms.TextBox();
|
||||
this.label12 = new System.Windows.Forms.Label();
|
||||
this.groupBox3.SuspendLayout();
|
||||
this.groupBox2.SuspendLayout();
|
||||
this.groupBox4.SuspendLayout();
|
||||
|
|
@ -70,6 +74,7 @@ namespace FModel.Forms
|
|||
this.groupBox1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.imgsPerRow)).BeginInit();
|
||||
this.groupBox5.SuspendLayout();
|
||||
this.groupBox6.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// groupBox3
|
||||
|
|
@ -132,7 +137,7 @@ namespace FModel.Forms
|
|||
//
|
||||
this.OKButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.OKButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.OKButton.Location = new System.Drawing.Point(475, 476);
|
||||
this.OKButton.Location = new System.Drawing.Point(475, 527);
|
||||
this.OKButton.Name = "OKButton";
|
||||
this.OKButton.Size = new System.Drawing.Size(97, 21);
|
||||
this.OKButton.TabIndex = 15;
|
||||
|
|
@ -295,7 +300,7 @@ namespace FModel.Forms
|
|||
this.groupBox1.Controls.Add(this.label5);
|
||||
this.groupBox1.Controls.Add(this.textBox3);
|
||||
this.groupBox1.Controls.Add(this.label4);
|
||||
this.groupBox1.Location = new System.Drawing.Point(12, 420);
|
||||
this.groupBox1.Location = new System.Drawing.Point(12, 473);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(560, 46);
|
||||
this.groupBox1.TabIndex = 17;
|
||||
|
|
@ -414,11 +419,50 @@ namespace FModel.Forms
|
|||
this.label2.TabIndex = 3;
|
||||
this.label2.Text = "EPIC Email:";
|
||||
//
|
||||
// groupBox6
|
||||
//
|
||||
this.groupBox6.Controls.Add(this.checkBox2);
|
||||
this.groupBox6.Controls.Add(this.textBox6);
|
||||
this.groupBox6.Controls.Add(this.label12);
|
||||
this.groupBox6.Location = new System.Drawing.Point(12, 421);
|
||||
this.groupBox6.Name = "groupBox6";
|
||||
this.groupBox6.Size = new System.Drawing.Size(560, 46);
|
||||
this.groupBox6.TabIndex = 19;
|
||||
this.groupBox6.TabStop = false;
|
||||
this.groupBox6.Text = "Challenges";
|
||||
//
|
||||
// checkBox2
|
||||
//
|
||||
this.checkBox2.AutoSize = true;
|
||||
this.checkBox2.Location = new System.Drawing.Point(448, 21);
|
||||
this.checkBox2.Name = "checkBox2";
|
||||
this.checkBox2.Size = new System.Drawing.Size(105, 17);
|
||||
this.checkBox2.TabIndex = 27;
|
||||
this.checkBox2.Text = "Draw Reward ID";
|
||||
this.checkBox2.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// textBox6
|
||||
//
|
||||
this.textBox6.Location = new System.Drawing.Point(74, 19);
|
||||
this.textBox6.Name = "textBox6";
|
||||
this.textBox6.Size = new System.Drawing.Size(359, 20);
|
||||
this.textBox6.TabIndex = 8;
|
||||
//
|
||||
// label12
|
||||
//
|
||||
this.label12.AutoSize = true;
|
||||
this.label12.Location = new System.Drawing.Point(6, 22);
|
||||
this.label12.Name = "label12";
|
||||
this.label12.Size = new System.Drawing.Size(62, 13);
|
||||
this.label12.TabIndex = 9;
|
||||
this.label12.Text = "Watermark:";
|
||||
//
|
||||
// Settings
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(584, 509);
|
||||
this.ClientSize = new System.Drawing.Size(584, 560);
|
||||
this.Controls.Add(this.groupBox6);
|
||||
this.Controls.Add(this.groupBox5);
|
||||
this.Controls.Add(this.groupBox1);
|
||||
this.Controls.Add(this.groupBox4);
|
||||
|
|
@ -446,6 +490,8 @@ namespace FModel.Forms
|
|||
((System.ComponentModel.ISupportInitialize)(this.imgsPerRow)).EndInit();
|
||||
this.groupBox5.ResumeLayout(false);
|
||||
this.groupBox5.PerformLayout();
|
||||
this.groupBox6.ResumeLayout(false);
|
||||
this.groupBox6.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
|
@ -484,5 +530,9 @@ namespace FModel.Forms
|
|||
private System.Windows.Forms.CheckBox checkBox1;
|
||||
private System.Windows.Forms.ComboBox comboBox1;
|
||||
private System.Windows.Forms.Label label10;
|
||||
private System.Windows.Forms.GroupBox groupBox6;
|
||||
private System.Windows.Forms.CheckBox checkBox2;
|
||||
private System.Windows.Forms.TextBox textBox6;
|
||||
private System.Windows.Forms.Label label12;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ namespace FModel.Forms
|
|||
{
|
||||
private static string _paKsPathBefore;
|
||||
private static string _outputPathBefore;
|
||||
private static string _oldLanguage;
|
||||
|
||||
public Settings()
|
||||
{
|
||||
|
|
@ -21,6 +22,14 @@ namespace FModel.Forms
|
|||
textBox4.Text = Properties.Settings.Default.eEmail;
|
||||
textBox5.Text = Properties.Settings.Default.ePassword;
|
||||
|
||||
textBox6.Text = Properties.Settings.Default.challengesWatermark;
|
||||
checkBox2.Checked = Properties.Settings.Default.challengesDebug;
|
||||
if (string.IsNullOrWhiteSpace(textBox6.Text))
|
||||
{
|
||||
textBox6.Text = "{Bundle_Name} Generated using FModel & JohnWickParse - {Date}";
|
||||
}
|
||||
else { textBox6.Text = Properties.Settings.Default.challengesWatermark; }
|
||||
|
||||
//MERGER
|
||||
textBox3.Text = Properties.Settings.Default.mergerFileName;
|
||||
imgsPerRow.Value = Properties.Settings.Default.mergerImagesRow;
|
||||
|
|
@ -68,6 +77,7 @@ namespace FModel.Forms
|
|||
}
|
||||
}
|
||||
|
||||
_oldLanguage = Properties.Settings.Default.IconLanguage;
|
||||
comboBox1.SelectedIndex = comboBox1.FindStringExact(Properties.Settings.Default.IconLanguage);
|
||||
|
||||
_paKsPathBefore = Properties.Settings.Default.PAKsPath;
|
||||
|
|
@ -97,6 +107,9 @@ namespace FModel.Forms
|
|||
Properties.Settings.Default.eEmail = textBox4.Text;
|
||||
Properties.Settings.Default.ePassword = textBox5.Text;
|
||||
|
||||
Properties.Settings.Default.challengesDebug = checkBox2.Checked;
|
||||
Properties.Settings.Default.challengesWatermark = textBox6.Text;
|
||||
|
||||
//MERGER
|
||||
Properties.Settings.Default.mergerFileName = textBox3.Text;
|
||||
Properties.Settings.Default.mergerImagesRow = Decimal.ToInt32(imgsPerRow.Value);
|
||||
|
|
@ -117,7 +130,10 @@ namespace FModel.Forms
|
|||
|
||||
//LOCRES
|
||||
Properties.Settings.Default.IconLanguage = comboBox1.SelectedItem.ToString();
|
||||
LoadLocRes.LoadMySelectedLocRes(Properties.Settings.Default.IconLanguage);
|
||||
if (comboBox1.SelectedItem.ToString() != _oldLanguage)
|
||||
{
|
||||
LoadLocRes.LoadMySelectedLocRes(Properties.Settings.Default.IconLanguage);
|
||||
}
|
||||
|
||||
Properties.Settings.Default.Save(); //SAVE
|
||||
Close();
|
||||
|
|
|
|||
|
|
@ -1279,48 +1279,50 @@ namespace FModel
|
|||
{
|
||||
UpdateConsole(ThePak.CurrentUsedItem + " is an Item Definition", Color.FromArgb(255, 66, 244, 66), "Success");
|
||||
|
||||
Bitmap bmp = new Bitmap(522, 522);
|
||||
Graphics g = Graphics.FromImage(bmp);
|
||||
g.TextRenderingHint = TextRenderingHint.AntiAlias;
|
||||
|
||||
Rarity.DrawRarity(theItem, g, specialMode);
|
||||
|
||||
ItemIcon.ItemIconPath = string.Empty;
|
||||
ItemIcon.GetItemIcon(theItem, Settings.Default.loadFeaturedImage);
|
||||
if (File.Exists(ItemIcon.ItemIconPath))
|
||||
using (Bitmap bmp = new Bitmap(522, 522))
|
||||
{
|
||||
Image itemIcon;
|
||||
using (var bmpTemp = new Bitmap(ItemIcon.ItemIconPath))
|
||||
Graphics g = Graphics.FromImage(bmp);
|
||||
g.TextRenderingHint = TextRenderingHint.AntiAlias;
|
||||
|
||||
Rarity.DrawRarity(theItem, g, specialMode);
|
||||
|
||||
ItemIcon.ItemIconPath = string.Empty;
|
||||
ItemIcon.GetItemIcon(theItem, Settings.Default.loadFeaturedImage);
|
||||
if (File.Exists(ItemIcon.ItemIconPath))
|
||||
{
|
||||
itemIcon = new Bitmap(bmpTemp);
|
||||
Image itemIcon;
|
||||
using (var bmpTemp = new Bitmap(ItemIcon.ItemIconPath))
|
||||
{
|
||||
itemIcon = new Bitmap(bmpTemp);
|
||||
}
|
||||
g.DrawImage(ImageUtilities.ResizeImage(itemIcon, 512, 512), new Point(5, 5));
|
||||
}
|
||||
g.DrawImage(ImageUtilities.ResizeImage(itemIcon, 512, 512), new Point(5, 5));
|
||||
}
|
||||
else
|
||||
{
|
||||
Image itemIcon = Resources.unknown512;
|
||||
g.DrawImage(itemIcon, new Point(0, 0));
|
||||
}
|
||||
|
||||
ItemIcon.DrawWatermark(g);
|
||||
|
||||
Image bg512 = Resources.BG512;
|
||||
g.DrawImage(bg512, new Point(5, 383));
|
||||
|
||||
DrawText.DrawTexts(theItem, g, specialMode);
|
||||
|
||||
if (autoSaveImagesToolStripMenuItem.Checked || updateModeToolStripMenuItem.Checked)
|
||||
{
|
||||
bmp.Save(App.DefaultOutputPath + "\\Icons\\" + ThePak.CurrentUsedItem + ".png", ImageFormat.Png);
|
||||
|
||||
if (File.Exists(App.DefaultOutputPath + "\\Icons\\" + ThePak.CurrentUsedItem + ".png"))
|
||||
else
|
||||
{
|
||||
AppendText(ThePak.CurrentUsedItem, Color.DarkRed);
|
||||
AppendText(" successfully saved", Color.Black, true);
|
||||
Image itemIcon = Resources.unknown512;
|
||||
g.DrawImage(itemIcon, new Point(0, 0));
|
||||
}
|
||||
}
|
||||
|
||||
return bmp;
|
||||
ItemIcon.DrawWatermark(g);
|
||||
|
||||
Image bg512 = Resources.BG512;
|
||||
g.DrawImage(bg512, new Point(5, 383));
|
||||
|
||||
DrawText.DrawTexts(theItem, g, specialMode);
|
||||
|
||||
if (autoSaveImagesToolStripMenuItem.Checked || updateModeToolStripMenuItem.Checked)
|
||||
{
|
||||
bmp.Save(App.DefaultOutputPath + "\\Icons\\" + ThePak.CurrentUsedItem + ".png", ImageFormat.Png);
|
||||
|
||||
if (File.Exists(App.DefaultOutputPath + "\\Icons\\" + ThePak.CurrentUsedItem + ".png"))
|
||||
{
|
||||
AppendText(ThePak.CurrentUsedItem, Color.DarkRed);
|
||||
AppendText(" successfully saved", Color.Black, true);
|
||||
}
|
||||
}
|
||||
|
||||
return bmp;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1375,7 +1377,7 @@ namespace FModel
|
|||
|
||||
//in case you wanna make some changes
|
||||
//BundleDesign.toDrawOn.DrawRectangle(new Pen(new SolidBrush(Color.Red)), new Rectangle(107, BundleDesign.theY + 7, 2000, 93)); //rectangle that resize the font -> used for "Font goodFont = "
|
||||
//BundleDesign.toDrawOn.DrawRectangle(new Pen(new SolidBrush(Color.Green)), new Rectangle(107, BundleDesign.theY + 7, 2000, 75)); //rectangle the font needs to be fit with
|
||||
//BundleDesign.toDrawOn.DrawRectangle(new Pen(new SolidBrush(Color.Blue)), new Rectangle(107, BundleDesign.theY + 7, 2000, 75)); //rectangle the font needs to be fit with
|
||||
|
||||
//draw quest description
|
||||
Font goodFont = FontUtilities.FindFont(BundleDesign.toDrawOn, BundleInfos.BundleData[i].questDescr, new Rectangle(107, BundleDesign.theY + 7, 2000, 93).Size, new Font(FontUtilities.pfc.Families[1], 50)); //size in "new Font()" is never check
|
||||
|
|
@ -1428,6 +1430,7 @@ namespace FModel
|
|||
AppendText(" successfully saved", Color.Black, true);
|
||||
}
|
||||
}
|
||||
bmp.Dispose();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -1500,10 +1503,13 @@ namespace FModel
|
|||
else
|
||||
UpdateConsole("Couldn't convert " + ThePak.CurrentUsedItem, Color.FromArgb(255, 244, 66, 66), "Error");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// todo: overwrite existing extracted font
|
||||
/// </summary>
|
||||
/// <param name="file"></param>
|
||||
private void ConvertToTtf(string file)
|
||||
{
|
||||
if (File.Exists(file)) { File.Delete(file); }
|
||||
|
||||
File.Move(file, Path.ChangeExtension(file, ".ttf") ?? throw new InvalidOperationException());
|
||||
UpdateConsole(ThePak.CurrentUsedItem + " successfully converter to a font", Color.FromArgb(255, 66, 244, 66), "Success");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -207,9 +207,23 @@ namespace FModel
|
|||
/// <param name="myBitmap"></param>
|
||||
public static void drawWatermark(Bitmap myBitmap)
|
||||
{
|
||||
string text = SearchResource.getTextByKey(myItem.DisplayName.Key, myItem.DisplayName.SourceString);
|
||||
string text = Settings.Default.challengesWatermark;
|
||||
if (string.IsNullOrWhiteSpace(text))
|
||||
{
|
||||
text = "{Bundle_Name} Generated using FModel & JohnWickParse - {Date}";
|
||||
}
|
||||
|
||||
if (text.Contains("{Bundle_Name}"))
|
||||
{
|
||||
text = text.Replace("{Bundle_Name}", SearchResource.getTextByKey(myItem.DisplayName.Key, myItem.DisplayName.SourceString));
|
||||
}
|
||||
if (text.Contains("{Date}"))
|
||||
{
|
||||
text = text.Replace("{Date}", DateTime.Now.ToString("dd/MM/yyyy"));
|
||||
}
|
||||
|
||||
toDrawOn.FillRectangle(new SolidBrush(Color.FromArgb(100, 0, 0, 0)), new Rectangle(0, theY + 240, myBitmap.Width, 40));
|
||||
toDrawOn.DrawString(text + " Generated using FModel & JohnWickParse - " + DateTime.Now.ToString("dd/MM/yyyy"), new Font(FontUtilities.pfc.Families[0], 20), new SolidBrush(Color.FromArgb(150, 255, 255, 255)), new Point(myBitmap.Width / 2, theY + 250), FontUtilities.centeredString);
|
||||
toDrawOn.DrawString(text, new Font(FontUtilities.pfc.Families[0], 20), new SolidBrush(Color.FromArgb(150, 255, 255, 255)), new Point(myBitmap.Width / 2, theY + 250), FontUtilities.centeredString);
|
||||
}
|
||||
|
||||
private static void drawForbyteReward()
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ namespace FModel
|
|||
{
|
||||
ItemIcon.SearchAthIteDefIcon(itemId[i]);
|
||||
|
||||
drawIcon();
|
||||
drawIcon(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -127,7 +127,7 @@ namespace FModel
|
|||
ItemIcon.ItemIconPath = JohnWick.AssetToTexture2D(textureFile);
|
||||
}
|
||||
|
||||
drawIcon();
|
||||
drawIcon(bannerName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -139,10 +139,16 @@ namespace FModel
|
|||
}
|
||||
}
|
||||
|
||||
private static void drawIcon()
|
||||
private static void drawIcon(string itemId)
|
||||
{
|
||||
if (File.Exists(ItemIcon.ItemIconPath))
|
||||
{
|
||||
if (Settings.Default.challengesDebug)
|
||||
{
|
||||
//draw quest reward id
|
||||
BundleDesign.toDrawOn.DrawString(itemId, new Font("Courier New", 12), new SolidBrush(Color.White), new RectangleF(2110, BundleDesign.theY + 30, 190, 60), FontUtilities.centeredStringLine);
|
||||
}
|
||||
|
||||
Image itemIcon;
|
||||
using (var bmpTemp = new Bitmap(ItemIcon.ItemIconPath))
|
||||
{
|
||||
|
|
|
|||
24
FModel/Properties/Settings.Designer.cs
generated
24
FModel/Properties/Settings.Designer.cs
generated
|
|
@ -514,5 +514,29 @@ namespace FModel.Properties {
|
|||
this["IconLanguage"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool challengesDebug {
|
||||
get {
|
||||
return ((bool)(this["challengesDebug"]));
|
||||
}
|
||||
set {
|
||||
this["challengesDebug"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string challengesWatermark {
|
||||
get {
|
||||
return ((string)(this["challengesWatermark"]));
|
||||
}
|
||||
set {
|
||||
this["challengesWatermark"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -125,5 +125,11 @@
|
|||
<Setting Name="IconLanguage" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">English</Value>
|
||||
</Setting>
|
||||
<Setting Name="challengesDebug" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="challengesWatermark" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
|
|
@ -83,6 +83,7 @@ This project is mainly based on what [UModel](https://github.com/gildor2/UModel)
|
|||
I'd highly suggest you to use [UModel](https://github.com/gildor2/UModel) instead if you wanna use something made professionnaly.
|
||||
|
||||
## TODO
|
||||
- [ ] Take a look at memory usage
|
||||
- [ ] Code refactoring
|
||||
- [ ] 2FA support
|
||||
- [ ] Export Queue
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user