diff --git a/FModel/App.config b/FModel/App.config
index 3ad2bd6d..20575ad8 100644
--- a/FModel/App.config
+++ b/FModel/App.config
@@ -61,9 +61,6 @@
English
-
- False
-
@@ -91,6 +88,18 @@
+
+ False
+
+
+
+
+
+ 1
+
+
+ 50,50,50
+
diff --git a/FModel/FModel.csproj b/FModel/FModel.csproj
index 63ff9fd5..6c8eee6e 100644
--- a/FModel/FModel.csproj
+++ b/FModel/FModel.csproj
@@ -252,6 +252,7 @@
+
@@ -280,10 +281,6 @@
-
-
-
-
diff --git a/FModel/Forms/Settings.Designer.cs b/FModel/Forms/Settings.Designer.cs
index 4468494c..4e7936a6 100644
--- a/FModel/Forms/Settings.Designer.cs
+++ b/FModel/Forms/Settings.Designer.cs
@@ -57,7 +57,14 @@ namespace FModel.Forms
this.textBox3 = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.groupBox6 = new System.Windows.Forms.GroupBox();
+ this.button3 = new System.Windows.Forms.Button();
+ this.button2 = new System.Windows.Forms.Button();
+ this.label7 = new System.Windows.Forms.Label();
+ this.button4 = new System.Windows.Forms.Button();
this.checkBox2 = new System.Windows.Forms.CheckBox();
+ this.label6 = new System.Windows.Forms.Label();
+ this.trackBar3 = new System.Windows.Forms.TrackBar();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.textBox6 = new System.Windows.Forms.TextBox();
this.label12 = new System.Windows.Forms.Label();
this.groupBox3.SuspendLayout();
@@ -69,6 +76,8 @@ namespace FModel.Forms
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.imgsPerRow)).BeginInit();
this.groupBox6.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.trackBar3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
// groupBox3
@@ -140,9 +149,9 @@ namespace FModel.Forms
//
// OKButton
//
- this.OKButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ 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, 434);
+ this.OKButton.Location = new System.Drawing.Point(475, 546);
this.OKButton.Name = "OKButton";
this.OKButton.Size = new System.Drawing.Size(97, 21);
this.OKButton.TabIndex = 15;
@@ -301,7 +310,7 @@ namespace FModel.Forms
//
// wPictureBox
//
- this.wPictureBox.Image = global::FModel.Properties.Resources.wTemplate;
+ this.wPictureBox.Image = global::FModel.Properties.Resources.wTemplatev1;
this.wPictureBox.Location = new System.Drawing.Point(389, 19);
this.wPictureBox.Name = "wPictureBox";
this.wPictureBox.Size = new System.Drawing.Size(165, 165);
@@ -311,12 +320,13 @@ namespace FModel.Forms
//
// groupBox1
//
+ this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.groupBox1.Controls.Add(this.checkBoxSaveAsMergeImages);
this.groupBox1.Controls.Add(this.imgsPerRow);
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, 375);
+ this.groupBox1.Location = new System.Drawing.Point(12, 487);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(560, 49);
this.groupBox1.TabIndex = 17;
@@ -377,32 +387,114 @@ namespace FModel.Forms
//
// groupBox6
//
+ this.groupBox6.Controls.Add(this.button3);
+ this.groupBox6.Controls.Add(this.button2);
+ this.groupBox6.Controls.Add(this.label7);
+ this.groupBox6.Controls.Add(this.button4);
this.groupBox6.Controls.Add(this.checkBox2);
+ this.groupBox6.Controls.Add(this.label6);
+ this.groupBox6.Controls.Add(this.trackBar3);
+ this.groupBox6.Controls.Add(this.pictureBox1);
this.groupBox6.Controls.Add(this.textBox6);
this.groupBox6.Controls.Add(this.label12);
this.groupBox6.Location = new System.Drawing.Point(12, 323);
this.groupBox6.Name = "groupBox6";
- this.groupBox6.Size = new System.Drawing.Size(560, 46);
+ this.groupBox6.Size = new System.Drawing.Size(560, 158);
this.groupBox6.TabIndex = 19;
this.groupBox6.TabStop = false;
- this.groupBox6.Text = "Challenges";
+ this.groupBox6.Text = "Challenges Theme";
+ //
+ // button3
+ //
+ this.button3.Location = new System.Drawing.Point(102, 129);
+ this.button3.Name = "button3";
+ this.button3.Size = new System.Drawing.Size(94, 23);
+ this.button3.TabIndex = 26;
+ this.button3.Text = "Choose Banner";
+ this.button3.UseVisualStyleBackColor = true;
+ this.button3.Click += new System.EventHandler(this.Button3_Click);
+ //
+ // button2
+ //
+ this.button2.Location = new System.Drawing.Point(199, 129);
+ this.button2.Name = "button2";
+ this.button2.Size = new System.Drawing.Size(93, 23);
+ this.button2.TabIndex = 11;
+ this.button2.Text = "Open Image";
+ this.button2.UseVisualStyleBackColor = true;
+ this.button2.Click += new System.EventHandler(this.Button2_Click);
+ //
+ // label7
+ //
+ this.label7.AutoSize = true;
+ this.label7.ForeColor = System.Drawing.Color.Red;
+ this.label7.Location = new System.Drawing.Point(89, 113);
+ this.label7.Name = "label7";
+ this.label7.Size = new System.Drawing.Size(117, 13);
+ this.label7.TabIndex = 33;
+ this.label7.Text = "Banner Size: 1024x256";
+ //
+ // button4
+ //
+ this.button4.Location = new System.Drawing.Point(6, 129);
+ this.button4.Name = "button4";
+ this.button4.Size = new System.Drawing.Size(93, 23);
+ this.button4.TabIndex = 31;
+ this.button4.Text = "Pick Color";
+ this.button4.UseVisualStyleBackColor = true;
+ this.button4.Click += new System.EventHandler(this.Button4_Click);
//
// checkBox2
//
this.checkBox2.AutoSize = true;
- this.checkBox2.Location = new System.Drawing.Point(448, 21);
+ this.checkBox2.Location = new System.Drawing.Point(6, 52);
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.Size = new System.Drawing.Size(97, 17);
+ this.checkBox2.TabIndex = 30;
+ this.checkBox2.Text = "Custom Theme";
this.checkBox2.UseVisualStyleBackColor = true;
+ this.checkBox2.CheckedChanged += new System.EventHandler(this.CheckBox2_CheckedChanged);
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(6, 82);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(46, 13);
+ this.label6.TabIndex = 28;
+ this.label6.Text = "Opacity:";
+ //
+ // trackBar3
+ //
+ this.trackBar3.Location = new System.Drawing.Point(58, 82);
+ this.trackBar3.Maximum = 1000;
+ this.trackBar3.Minimum = 1;
+ this.trackBar3.Name = "trackBar3";
+ this.trackBar3.Size = new System.Drawing.Size(234, 45);
+ this.trackBar3.TabIndex = 27;
+ this.trackBar3.TickFrequency = 25;
+ this.trackBar3.TickStyle = System.Windows.Forms.TickStyle.None;
+ this.trackBar3.Value = 1;
+ this.trackBar3.ValueChanged += new System.EventHandler(this.TrackBar3_ValueChanged);
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.pictureBox1.Image = global::FModel.Properties.Resources.cTemplate;
+ this.pictureBox1.Location = new System.Drawing.Point(298, 45);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(256, 107);
+ this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
+ this.pictureBox1.TabIndex = 10;
+ this.pictureBox1.TabStop = false;
//
// 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.Size = new System.Drawing.Size(480, 20);
this.textBox6.TabIndex = 8;
+ this.textBox6.TextChanged += new System.EventHandler(this.TextBox6_TextChanged);
//
// label12
//
@@ -417,7 +509,7 @@ namespace FModel.Forms
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(584, 467);
+ this.ClientSize = new System.Drawing.Size(584, 579);
this.Controls.Add(this.groupBox6);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.groupBox4);
@@ -431,6 +523,7 @@ namespace FModel.Forms
this.Name = "Settings";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "FModel Settings";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Settings_FormClosing);
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
this.groupBox2.ResumeLayout(false);
@@ -445,6 +538,8 @@ namespace FModel.Forms
((System.ComponentModel.ISupportInitialize)(this.imgsPerRow)).EndInit();
this.groupBox6.ResumeLayout(false);
this.groupBox6.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.trackBar3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.ResumeLayout(false);
}
@@ -476,11 +571,18 @@ namespace FModel.Forms
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;
private System.Windows.Forms.CheckBox checkBox_tryToOpen;
private System.Windows.Forms.CheckBox checkBoxSaveAsMergeImages;
private System.Windows.Forms.CheckBox checkBox1;
+ private System.Windows.Forms.PictureBox pictureBox1;
+ private System.Windows.Forms.Button button2;
+ private System.Windows.Forms.CheckBox checkBox2;
+ private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.TrackBar trackBar3;
+ private System.Windows.Forms.Button button3;
+ private System.Windows.Forms.Button button4;
+ private System.Windows.Forms.Label label7;
}
}
diff --git a/FModel/Forms/Settings.cs b/FModel/Forms/Settings.cs
index 9ef46f11..e4b04d95 100644
--- a/FModel/Forms/Settings.cs
+++ b/FModel/Forms/Settings.cs
@@ -1,16 +1,22 @@
using System;
using System.Drawing;
+using System.Drawing.Drawing2D;
+using System.Drawing.Text;
using System.IO;
using System.Windows.Forms;
using FModel.Properties;
namespace FModel.Forms
{
+ //refactor asap
public partial class Settings : Form
{
private static string _paKsPathBefore;
private static string _outputPathBefore;
private static string _oldLanguage;
+ private static Color headerColor;
+ private static Bitmap bmp;
+ private static Graphics g;
public Settings()
{
@@ -25,7 +31,6 @@ namespace FModel.Forms
checkBox1.Checked = Properties.Settings.Default.rarityNew;
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}";
@@ -50,6 +55,16 @@ namespace FModel.Forms
trackBar1.Value = Properties.Settings.Default.wOpacity;
trackBar2.Value = Properties.Settings.Default.wSize;
+ button3.Enabled = Properties.Settings.Default.isChallengesTheme;
+ button4.Enabled = Properties.Settings.Default.isChallengesTheme;
+ checkBox2.Checked = Properties.Settings.Default.isChallengesTheme;
+ trackBar3.Enabled = Properties.Settings.Default.isChallengesTheme;
+ trackBar3.Value = Properties.Settings.Default.challengesOpacity;
+ string[] colorParts = Properties.Settings.Default.challengesColors.Split(',');
+ headerColor = Color.FromArgb(255, Int32.Parse(colorParts[0]), Int32.Parse(colorParts[1]), Int32.Parse(colorParts[2]));
+ if (File.Exists(Properties.Settings.Default.challengesBannerFileName)) { drawChallengeTemplate(headerColor, true); }
+ else { pictureBox1.Image = Resources.cTemplate; }
+
//FEATURED
checkBox8.Checked = Properties.Settings.Default.loadFeaturedImage;
if (File.Exists(Properties.Settings.Default.wFilename))
@@ -101,8 +116,10 @@ namespace FModel.Forms
MessageBox.Show(@"Please, restart FModel to apply your new output path", @"FModel Output Path Changed", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
- Properties.Settings.Default.challengesDebug = checkBox2.Checked;
Properties.Settings.Default.challengesWatermark = textBox6.Text;
+ Properties.Settings.Default.isChallengesTheme = checkBox2.Checked;
+ Properties.Settings.Default.challengesOpacity = trackBar3.Value;
+ Properties.Settings.Default.challengesColors = headerColor.R + "," + headerColor.G + "," + headerColor.B;
Properties.Settings.Default.tryToOpenAssets = checkBox_tryToOpen.Checked;
@@ -129,6 +146,7 @@ namespace FModel.Forms
}
Properties.Settings.Default.Save(); //SAVE
+ bmp.Dispose();
Close();
}
@@ -256,5 +274,181 @@ namespace FModel.Forms
wPictureBox.Image = bmp;
}
}
+
+ private void Button2_Click(object sender, EventArgs e)
+ {
+ if (pictureBox1.Image != null)
+ {
+ var newForm = new Form();
+
+ PictureBox pb = new PictureBox();
+ pb.Dock = DockStyle.Fill;
+ pb.Image = pictureBox1.Image;
+ pb.SizeMode = PictureBoxSizeMode.Zoom;
+
+ newForm.Size = pictureBox1.Image.Size;
+ newForm.Icon = Resources.FModel;
+ newForm.Text = ThePak.CurrentUsedItem;
+ newForm.StartPosition = FormStartPosition.CenterScreen;
+ newForm.Controls.Add(pb);
+ newForm.Show();
+ }
+ }
+
+ private void CheckBox2_CheckedChanged(object sender, EventArgs e)
+ {
+ button3.Enabled = checkBox2.Checked;
+ button4.Enabled = checkBox2.Checked;
+ trackBar3.Enabled = checkBox2.Checked;
+
+ if (!checkBox2.Checked)
+ {
+ pictureBox1.Image = Resources.cTemplate;
+ }
+ else { drawChallengeTemplate(headerColor, File.Exists(Properties.Settings.Default.challengesBannerFileName)); }
+ }
+
+ private void Button4_Click(object sender, EventArgs e)
+ {
+ ColorDialog MyDialog = new ColorDialog();
+ MyDialog.FullOpen = true;
+ MyDialog.AnyColor = true;
+
+ if (MyDialog.ShowDialog() == DialogResult.OK)
+ {
+ headerColor = MyDialog.Color;
+ drawChallengeTemplate(headerColor, File.Exists(Properties.Settings.Default.challengesBannerFileName));
+ }
+ MyDialog.Dispose();
+ }
+
+ private void drawChallengeTemplate(Color headerColor, bool isBanner = false)
+ {
+ bmp = new Bitmap(1024, 410);
+ g = Graphics.FromImage(bmp);
+ g.TextRenderingHint = TextRenderingHint.AntiAlias;
+ g.SmoothingMode = SmoothingMode.HighQuality;
+
+ #region header
+ if (isBanner)
+ {
+ if (File.Exists(Properties.Settings.Default.challengesBannerFileName))
+ {
+ g.FillRectangle(new SolidBrush(headerColor), new Rectangle(0, 0, bmp.Width, 256));
+
+ Image banner = Image.FromFile(Properties.Settings.Default.challengesBannerFileName);
+ var opacityImage = ImageUtilities.SetImageOpacity(banner, (float)trackBar3.Value / 1000);
+ g.DrawImage(ImageUtilities.ResizeImage(opacityImage, 1024, 256), 0, 0);
+ }
+ }
+ else
+ {
+ g.FillRectangle(new SolidBrush(headerColor), new Rectangle(0, 0, bmp.Width, 256));
+ }
+
+ GraphicsPath gp = new GraphicsPath();
+ gp.StartFigure();
+ gp.AddLine(0, 256, bmp.Width, 256);
+ gp.AddLine(bmp.Width, 256, bmp.Width, 241);
+ gp.AddLine(bmp.Width, 241, bmp.Width / 2 + 25, 236);
+ gp.AddLine(bmp.Width / 2 + 25, 236, bmp.Width / 2 + 35, 249);
+ gp.AddLine(bmp.Width / 2 + 35, 249, 0, 241);
+ gp.CloseFigure();
+ g.FillPath(new SolidBrush(ControlPaint.Light(headerColor)), gp);
+
+ GraphicsPath p = new GraphicsPath();
+ Pen myPen = new Pen(ControlPaint.Light(headerColor, (float)0.2), 3);
+ myPen.LineJoin = LineJoin.Round; //needed to avoid spikes
+ p.AddString(
+ "{LAST FOLDER HERE}",
+ Properties.Settings.Default.IconLanguage == "Japanese" ? FontUtilities.pfc.Families[2] : FontUtilities.pfc.Families[1],
+ (int)FontStyle.Regular, 30,
+ new Point(30, 70),
+ FontUtilities.leftString
+ );
+ g.DrawPath(myPen, p);
+ g.FillPath(new SolidBrush(ControlPaint.Dark(headerColor, (float)0.05)), p);
+
+ g.DrawString("{BUNDLE DISPLAY NAME HERE}", new Font(Properties.Settings.Default.IconLanguage == "Japanese" ? FontUtilities.pfc.Families[2] : FontUtilities.pfc.Families[1], 40), new SolidBrush(Color.White), new Point(25, 105));
+
+ g.FillRectangle(new SolidBrush(ControlPaint.Dark(headerColor, (float)0.1)), new Rectangle(0, 256, bmp.Width, bmp.Height));
+ #endregion
+
+ #region quest background
+ int theY = 290;
+ g.FillRectangle(new SolidBrush(Color.FromArgb(50, headerColor.R, headerColor.G, headerColor.B)), new Rectangle(25, theY, bmp.Width - 50, 70));
+
+ gp = new GraphicsPath();
+ gp.StartFigure();
+ gp.AddLine(32, theY + 5, 29, theY + 67);
+ gp.AddLine(29, theY + 67, bmp.Width - 160, theY + 62);
+ gp.AddLine(bmp.Width - 160, theY + 62, bmp.Width - 150, theY + 4);
+ gp.CloseFigure();
+ g.FillPath(new SolidBrush(Color.FromArgb(50, headerColor.R, headerColor.G, headerColor.B)), gp);
+
+ g.FillRectangle(new SolidBrush(headerColor), new Rectangle(60, theY + 47, 500, 7));
+
+ gp = new GraphicsPath();
+ gp.StartFigure();
+ gp.AddLine(39, theY + 35, 45, theY + 32);
+ gp.AddLine(45, theY + 32, 48, theY + 37);
+ gp.AddLine(48, theY + 37, 42, theY + 40);
+ gp.CloseFigure();
+ g.FillPath(new SolidBrush(headerColor), gp);
+ #endregion
+
+ #region watermark
+ string text = textBox6.Text;
+ if (string.IsNullOrWhiteSpace(text))
+ {
+ text = "{Bundle_Name} Generated using FModel & JohnWickParse - {Date}";
+ }
+
+ if (text.Contains("{Bundle_Name}"))
+ {
+ text = text.Replace("{Bundle_Name}", "{BUNDLE DISPLAY NAME HERE}");
+ }
+ if (text.Contains("{Date}"))
+ {
+ text = text.Replace("{Date}", DateTime.Now.ToString("dd/MM/yyyy"));
+ }
+
+ g.DrawString(text, new Font(FontUtilities.pfc.Families[0], 15), new SolidBrush(Color.FromArgb(150, 255, 255, 255)), new Point(bmp.Width - 10, 210), FontUtilities.rightString);
+ #endregion
+
+ pictureBox1.Image = bmp;
+ }
+
+ private void Button3_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog theDialog = new OpenFileDialog();
+ theDialog.Title = @"Choose your banner";
+ theDialog.Multiselect = false;
+ theDialog.Filter = @"PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|DDS Files (*.dds)|*.dds|All Files (*.*)|*.*";
+
+ if (theDialog.ShowDialog() == DialogResult.OK)
+ {
+ Properties.Settings.Default.challengesBannerFileName = theDialog.FileName;
+ Properties.Settings.Default.Save();
+
+ drawChallengeTemplate(headerColor, File.Exists(Properties.Settings.Default.challengesBannerFileName));
+ }
+ }
+
+ private void TrackBar3_ValueChanged(object sender, EventArgs e)
+ {
+ drawChallengeTemplate(headerColor, File.Exists(Properties.Settings.Default.challengesBannerFileName));
+ pictureBox1.Refresh();
+ }
+
+ private void TextBox6_TextChanged(object sender, EventArgs e)
+ {
+ drawChallengeTemplate(headerColor, File.Exists(Properties.Settings.Default.challengesBannerFileName));
+ }
+
+ private void Settings_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ bmp.Dispose();
+ }
}
}
diff --git a/FModel/MainWindow.cs b/FModel/MainWindow.cs
index d3352089..bf9ab6a8 100644
--- a/FModel/MainWindow.cs
+++ b/FModel/MainWindow.cs
@@ -165,13 +165,13 @@ namespace FModel
}
await Task.Run(() => {
+ FontUtilities.SetFont();
Utilities.SetOutputFolder();
FillWithPaKs();
AddToUI.checkAndAddDynamicKeys();
Utilities.colorMyPaks(loadOneToolStripMenuItem);
Utilities.SetFolderPermission(App.DefaultOutputPath);
Utilities.CreateDefaultFolders();
- FontUtilities.SetFont();
});
MyScintilla.SetScintillaStyle(scintilla1);
diff --git a/FModel/Methods/IconGenerator/ChallengeGenerator/BundleDesign.cs b/FModel/Methods/IconGenerator/ChallengeGenerator/BundleDesign.cs
index a190fb87..ee5fb8ec 100644
--- a/FModel/Methods/IconGenerator/ChallengeGenerator/BundleDesign.cs
+++ b/FModel/Methods/IconGenerator/ChallengeGenerator/BundleDesign.cs
@@ -14,7 +14,7 @@ namespace FModel
public static int theY { get; set; }
public static Graphics toDrawOn { get; set; }
public static JToken myItem { get; set; }
- public static Color headerColor { get; set; }
+ private static Color headerColor { get; set; }
///
/// get a random color in case DisplayStyle doesn't exist in drawBackground()
@@ -52,7 +52,15 @@ namespace FModel
JToken displayStyle = myBundle["DisplayStyle"];
if (displayStyle != null)
{
- headerColor = BundleInfos.getSecondaryColor(myBundle);
+ if (Settings.Default.isChallengesTheme)
+ {
+ string[] colorParts = Settings.Default.challengesColors.Split(',');
+ headerColor = Color.FromArgb(255, Int32.Parse(colorParts[0]), Int32.Parse(colorParts[1]), Int32.Parse(colorParts[2]));
+ }
+ else
+ {
+ headerColor = BundleInfos.getSecondaryColor(myBundle);
+ }
JToken customBackground = displayStyle["CustomBackground"];
JToken displayImage = displayStyle["DisplayImage"];
@@ -70,8 +78,22 @@ namespace FModel
{
challengeIcon = new Bitmap(bmpTemp);
}
- toDrawOn.DrawImage(challengeIcon, new Point(0, 0));
- toDrawOn.FillRectangle(new SolidBrush(Color.FromArgb(175, headerColor.R, headerColor.G, headerColor.B)), new Rectangle(0, 0, myBitmap.Width, 256));
+
+ toDrawOn.FillRectangle(new SolidBrush(headerColor), new Rectangle(0, 0, myBitmap.Width, 256));
+ if (Settings.Default.isChallengesTheme)
+ {
+ if (File.Exists(Settings.Default.challengesBannerFileName))
+ {
+ Image banner = Image.FromFile(Settings.Default.challengesBannerFileName);
+ var opacityImage = ImageUtilities.SetImageOpacity(banner, (float)Settings.Default.challengesOpacity / 1000);
+ toDrawOn.DrawImage(ImageUtilities.ResizeImage(opacityImage, 1024, 256), 0, 0);
+ }
+ }
+ else
+ {
+ var opacityImage = ImageUtilities.SetImageOpacity(challengeIcon, (float)0.3);
+ toDrawOn.DrawImage(opacityImage, new Point(0, 0));
+ }
}
}
}
@@ -88,14 +110,59 @@ namespace FModel
{
challengeIcon = new Bitmap(bmpTemp);
}
+
toDrawOn.FillRectangle(new SolidBrush(headerColor), new Rectangle(0, 0, myBitmap.Width, 256));
+ if (Settings.Default.isChallengesTheme)
+ {
+ if (File.Exists(Settings.Default.challengesBannerFileName))
+ {
+ Image banner = Image.FromFile(Settings.Default.challengesBannerFileName);
+ var opacityImage = ImageUtilities.SetImageOpacity(banner, (float)Settings.Default.challengesOpacity / 1000);
+ toDrawOn.DrawImage(ImageUtilities.ResizeImage(opacityImage, 1024, 256), 0, 0);
+ }
+ }
+
toDrawOn.DrawImage(ImageUtilities.ResizeImage(challengeIcon, 256, 256), new Point(0, 0));
}
}
- else { toDrawOn.FillRectangle(new SolidBrush(headerColor), new Rectangle(0, 0, myBitmap.Width, 256)); }
+ else
+ {
+ toDrawOn.FillRectangle(new SolidBrush(headerColor), new Rectangle(0, 0, myBitmap.Width, 256));
+ if (Settings.Default.isChallengesTheme)
+ {
+ if (File.Exists(Settings.Default.challengesBannerFileName))
+ {
+ Image banner = Image.FromFile(Settings.Default.challengesBannerFileName);
+ var opacityImage = ImageUtilities.SetImageOpacity(banner, (float)Settings.Default.challengesOpacity / 1000);
+ toDrawOn.DrawImage(ImageUtilities.ResizeImage(opacityImage, 1024, 256), 0, 0);
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ if (Settings.Default.isChallengesTheme)
+ {
+ string[] colorParts = Settings.Default.challengesColors.Split(',');
+ headerColor = Color.FromArgb(255, Int32.Parse(colorParts[0]), Int32.Parse(colorParts[1]), Int32.Parse(colorParts[2]));
+ }
+ else
+ {
+ headerColor = getRandomColor();
+ }
+
+ toDrawOn.FillRectangle(new SolidBrush(headerColor), new Rectangle(0, 0, myBitmap.Width, 256));
+ if (Settings.Default.isChallengesTheme)
+ {
+ if (File.Exists(Settings.Default.challengesBannerFileName))
+ {
+ Image banner = Image.FromFile(Settings.Default.challengesBannerFileName);
+ var opacityImage = ImageUtilities.SetImageOpacity(banner, (float)Settings.Default.challengesOpacity / 1000);
+ toDrawOn.DrawImage(ImageUtilities.ResizeImage(opacityImage, 1024, 256), 0, 0);
+ }
}
}
- else { headerColor = getRandomColor(); toDrawOn.FillRectangle(new SolidBrush(headerColor), new Rectangle(0, 0, myBitmap.Width, 256)); }
GraphicsPath gp = new GraphicsPath();
gp.StartFigure();
@@ -160,7 +227,7 @@ namespace FModel
JToken bundleCompletionRewards = myBundle["BundleCompletionRewards"];
if (bundleCompletionRewards != null)
{
- theY += 50;
+ theY += 35;
JArray bundleCompletionRewardsArray = bundleCompletionRewards.Value();
foreach (JToken token in bundleCompletionRewardsArray)
{
diff --git a/FModel/Methods/Utilities/Utilities.cs b/FModel/Methods/Utilities/Utilities.cs
index 3823c5f0..b497db34 100644
--- a/FModel/Methods/Utilities/Utilities.cs
+++ b/FModel/Methods/Utilities/Utilities.cs
@@ -187,6 +187,13 @@ namespace FModel
Properties.Settings.Default.UMFilename = string.Empty;
Properties.Settings.Default.UMWatermark = false;
}
+
+ if (!string.IsNullOrEmpty(Properties.Settings.Default.challengesBannerFileName) &&
+ !File.Exists(Properties.Settings.Default.challengesBannerFileName))
+ {
+ Properties.Settings.Default.challengesBannerFileName = string.Empty;
+ Properties.Settings.Default.isChallengesTheme = false;
+ }
}
}
}
diff --git a/FModel/Properties/Resources.Designer.cs b/FModel/Properties/Resources.Designer.cs
index a6fbb18e..e13cb1e2 100644
--- a/FModel/Properties/Resources.Designer.cs
+++ b/FModel/Properties/Resources.Designer.cs
@@ -140,6 +140,16 @@ namespace FModel.Properties {
}
}
+ ///
+ /// Recherche une ressource localisée de type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap cTemplate {
+ get {
+ object obj = ResourceManager.GetObject("cTemplate", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
///
diff --git a/FModel/Properties/Resources.resx b/FModel/Properties/Resources.resx
index 52e40683..80241dbf 100644
--- a/FModel/Properties/Resources.resx
+++ b/FModel/Properties/Resources.resx
@@ -241,4 +241,7 @@
..\Resources\wTemplatev1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\cTemplate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
\ No newline at end of file
diff --git a/FModel/Properties/Settings.Designer.cs b/FModel/Properties/Settings.Designer.cs
index 1cd67d1a..ac5da8e8 100644
--- a/FModel/Properties/Settings.Designer.cs
+++ b/FModel/Properties/Settings.Designer.cs
@@ -227,18 +227,6 @@ namespace FModel.Properties {
}
}
- [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("")]
@@ -346,5 +334,53 @@ namespace FModel.Properties {
this["UMParameters"] = value;
}
}
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool isChallengesTheme {
+ get {
+ return ((bool)(this["isChallengesTheme"]));
+ }
+ set {
+ this["isChallengesTheme"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("")]
+ public string challengesBannerFileName {
+ get {
+ return ((string)(this["challengesBannerFileName"]));
+ }
+ set {
+ this["challengesBannerFileName"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("1")]
+ public int challengesOpacity {
+ get {
+ return ((int)(this["challengesOpacity"]));
+ }
+ set {
+ this["challengesOpacity"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("50,50,50")]
+ public string challengesColors {
+ get {
+ return ((string)(this["challengesColors"]));
+ }
+ set {
+ this["challengesColors"] = value;
+ }
+ }
}
}
diff --git a/FModel/Properties/Settings.settings b/FModel/Properties/Settings.settings
index 81518611..fd53e25b 100644
--- a/FModel/Properties/Settings.settings
+++ b/FModel/Properties/Settings.settings
@@ -53,9 +53,6 @@
English
-
- False
-
@@ -83,5 +80,17 @@
+
+ False
+
+
+
+
+
+ 1
+
+
+ 50,50,50
+
\ No newline at end of file
diff --git a/FModel/Resources/cTemplate.png b/FModel/Resources/cTemplate.png
new file mode 100644
index 00000000..d769ac30
Binary files /dev/null and b/FModel/Resources/cTemplate.png differ