From e9de63b69ee3832f5b49a9679a431b982fe62a99 Mon Sep 17 00:00:00 2001 From: iAmAsval Date: Mon, 25 May 2020 21:50:35 +0200 Subject: [PATCH] FModel 3.1.0.4 --- FModel/Creator/BaseOffer.cs | 40 +++++++++++---- FModel/Creator/Creator.cs | 48 +++++++++++------- FModel/Enums.cs | 1 + FModel/FModel.csproj | 8 +-- FModel/Properties/Resources.Designer.cs | 19 +++++++ FModel/Properties/Resources.ar.resx | 3 ++ FModel/Properties/Resources.de-DE.resx | 3 ++ FModel/Properties/Resources.fr-FR.resx | 3 ++ FModel/Properties/Resources.it-IT.resx | 3 ++ FModel/Properties/Resources.resx | 6 +++ FModel/Resources/EIconDesign_NoBackground.png | Bin 0 -> 8639 bytes .../ViewModels/ComboBox/ComboBoxViewModel.cs | 7 +-- FModel/Windows/Settings/IconCreator.xaml.cs | 2 +- 13 files changed, 107 insertions(+), 36 deletions(-) create mode 100644 FModel/Resources/EIconDesign_NoBackground.png diff --git a/FModel/Creator/BaseOffer.cs b/FModel/Creator/BaseOffer.cs index 310ddf94..f9715cce 100644 --- a/FModel/Creator/BaseOffer.cs +++ b/FModel/Creator/BaseOffer.cs @@ -26,27 +26,42 @@ public BaseOffer() public BaseOffer(IUExport export) : this() { - if (export.TryGetValue("DetailsImage", out var v1) && v1 is StructProperty s && - s.Value is UObject typeImage && typeImage.TryGetValue("ResourceObject", out var v2) && v2 is ObjectProperty resourceObject) + if (export.GetExport("DetailsImage", "TileImage") is StructProperty typeImage) { - IconImage = Utils.GetObjectTexture(resourceObject); + if (typeImage.Value is UObject t && t.TryGetValue("ResourceObject", out var v) && v is ObjectProperty resourceObject) + { + IconImage = Utils.GetObjectTexture(resourceObject); + } } - if (export.TryGetValue("Gradient", out var g) && g is StructProperty r && r.Value is UObject gradient) + if (export.GetExport("Gradient") is StructProperty gradient) { - if (gradient.TryGetValue("Start", out var s1) && s1 is StructProperty t1 && t1.Value is FLinearColor start && - gradient.TryGetValue("Stop", out var s2) && s2 is StructProperty t2 && t2.Value is FLinearColor stop) + if (gradient.Value is UObject g && + g.TryGetValue("Start", out var s1) && s1 is StructProperty t1 && t1.Value is FLinearColor start && + g.TryGetValue("Stop", out var s2) && s2 is StructProperty t2 && t2.Value is FLinearColor stop) { - RarityBackgroundColors = new SKColor[2] { SKColor.Parse(stop.Hex), SKColor.Parse(start.Hex) }; + RarityBackgroundColors = new SKColor[2] { SKColor.Parse(start.Hex), SKColor.Parse(stop.Hex) }; } } - if (export.TryGetValue("Background", out var b) && b is StructProperty a && a.Value is FLinearColor background) - RarityBorderColor = SKColor.Parse(background.Hex); + if (export.GetExport("Background") is StructProperty background) + { + if (background.Value is FLinearColor b) + { + RarityBorderColor = SKColor.Parse(b.Hex); + } + } } - public void Draw(SKCanvas c) + public void DrawBackground(SKCanvas c) { + if (RarityBackgroundColors[0] == RarityBackgroundColors[1]) + RarityBackgroundColors[0] = RarityBorderColor; + + RarityBackgroundColors[0].ToHsl(out var _, out var _, out var l1); + RarityBackgroundColors[1].ToHsl(out var _, out var _, out var l2); + bool reverse = l1 > l2; + // border c.DrawRect(new SKRect(0, 0, Size, Size), new SKPaint @@ -64,10 +79,13 @@ public void Draw(SKCanvas c) Shader = SKShader.CreateRadialGradient( new SKPoint(Size / 2, Size / 2), Size / 5 * 4, - RarityBackgroundColors, + new SKColor[2] { reverse ? RarityBackgroundColors[0] : RarityBackgroundColors[1], reverse ? RarityBackgroundColors[1] : RarityBackgroundColors[0] }, SKShaderTileMode.Clamp) }); + } + public void DrawImage(SKCanvas c) + { c.DrawBitmap(IconImage ?? FallbackImage, new SKRect(Margin, Margin, Size - Margin, Size - Margin), new SKPaint { FilterQuality = SKFilterQuality.High, IsAntialias = true }); } diff --git a/FModel/Creator/Creator.cs b/FModel/Creator/Creator.cs index 80f0d1d2..bc80e516 100644 --- a/FModel/Creator/Creator.cs +++ b/FModel/Creator/Creator.cs @@ -92,29 +92,37 @@ public static bool TryDrawIcon(string assetPath, string exportType, IUExport exp { BaseIcon icon = new BaseIcon(export, exportType, ref assetName); int height = icon.Size + icon.AdditionalSize; - using (var ret = new SKBitmap(icon.Size, height, SKColorType.Rgba8888, SKAlphaType.Opaque)) + using (var ret = new SKBitmap(icon.Size, height, SKColorType.Rgba8888, SKAlphaType.Premul)) using (var c = new SKCanvas(ret)) { - Rarity.DrawRarity(c, icon); + if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground) + { + Rarity.DrawRarity(c, icon); + } + LargeSmallImage.DrawPreviewImage(c, icon); - if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoText) + + if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground) { - Text.DrawBackground(c, icon); - Text.DrawDisplayName(c, icon); - Text.DrawDescription(c, icon); - if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.Mini) + if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoText) { - if (!icon.ShortDescription.Equals(icon.DisplayName) && !icon.ShortDescription.Equals(icon.Description)) - Text.DrawToBottom(c, icon, ETextSide.Left, icon.ShortDescription); - Text.DrawToBottom(c, icon, ETextSide.Right, icon.CosmeticSource); + Text.DrawBackground(c, icon); + Text.DrawDisplayName(c, icon); + Text.DrawDescription(c, icon); + if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.Mini) + { + if (!icon.ShortDescription.Equals(icon.DisplayName) && !icon.ShortDescription.Equals(icon.Description)) + Text.DrawToBottom(c, icon, ETextSide.Left, icon.ShortDescription); + Text.DrawToBottom(c, icon, ETextSide.Right, icon.CosmeticSource); + } } - } - UserFacingFlag.DrawUserFacingFlags(c, icon); + UserFacingFlag.DrawUserFacingFlags(c, icon); - // has more things to show - if (height > icon.Size) - { - Statistics.DrawStats(c, icon); + // has more things to show + if (height > icon.Size) + { + Statistics.DrawStats(c, icon); + } } Watermark.DrawWatermark(c); // watermark should only be applied on icons with width = 512 @@ -125,10 +133,14 @@ public static bool TryDrawIcon(string assetPath, string exportType, IUExport exp case "FortMtxOfferData": { BaseOffer icon = new BaseOffer(export); - using (var ret = new SKBitmap(icon.Size, icon.Size, SKColorType.Rgba8888, SKAlphaType.Opaque)) + using (var ret = new SKBitmap(icon.Size, icon.Size, SKColorType.Rgba8888, SKAlphaType.Premul)) using (var c = new SKCanvas(ret)) { - icon.Draw(c); + if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground) + { + icon.DrawBackground(c); + } + icon.DrawImage(c); Watermark.DrawWatermark(c); // watermark should only be applied on icons with width = 512 ImageBoxVm.imageBoxViewModel.Set(ret, assetName); diff --git a/FModel/Enums.cs b/FModel/Enums.cs index df3f28b8..a1e7874c 100644 --- a/FModel/Enums.cs +++ b/FModel/Enums.cs @@ -54,6 +54,7 @@ public enum ELanguage : long public enum EIconDesign : long { Default, + NoBackground, NoText, Mini, Flat diff --git a/FModel/FModel.csproj b/FModel/FModel.csproj index 169c4db3..5fb15c6a 100644 --- a/FModel/FModel.csproj +++ b/FModel/FModel.csproj @@ -8,8 +8,8 @@ FModel.App Asval - 3.1.0.3 - 3.1.0.3 + 3.1.0.4 + 3.1.0.4 FModel.ico https://github.com/iAmAsval/FModel @@ -53,6 +53,7 @@ + @@ -122,7 +123,7 @@ - + @@ -156,6 +157,7 @@ + diff --git a/FModel/Properties/Resources.Designer.cs b/FModel/Properties/Resources.Designer.cs index 0cf8fe74..1cc57d07 100644 --- a/FModel/Properties/Resources.Designer.cs +++ b/FModel/Properties/Resources.Designer.cs @@ -881,6 +881,16 @@ public static System.Drawing.Bitmap EIconDesign_Mini { } } + /// + /// Recherche une ressource localisée de type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap EIconDesign_NoBackground { + get { + object obj = ResourceManager.GetObject("EIconDesign_NoBackground", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Recherche une ressource localisée de type System.Drawing.Bitmap. /// @@ -1766,6 +1776,15 @@ public static string No { } } + /// + /// Recherche une chaîne localisée semblable à No Background. + /// + public static string NoBackground { + get { + return ResourceManager.GetString("NoBackground", resourceCulture); + } + } + /// /// Recherche une chaîne localisée semblable à There are currently no data to export. /// diff --git a/FModel/Properties/Resources.ar.resx b/FModel/Properties/Resources.ar.resx index 3756e4e6..c6e6f63e 100644 --- a/FModel/Properties/Resources.ar.resx +++ b/FModel/Properties/Resources.ar.resx @@ -820,4 +820,7 @@ It's now the most used free software to leak on Fortnite. استخدم Fmodel باللغة الإنجليزية + + أي خلفية + \ No newline at end of file diff --git a/FModel/Properties/Resources.de-DE.resx b/FModel/Properties/Resources.de-DE.resx index b7671af9..a1f01d70 100644 --- a/FModel/Properties/Resources.de-DE.resx +++ b/FModel/Properties/Resources.de-DE.resx @@ -855,4 +855,7 @@ Jetzt ist es die am häufigsten genutzte freie Software um mit Fortnite zu leake FModel in Englisch benutzen + + Kein Hintergrund + \ No newline at end of file diff --git a/FModel/Properties/Resources.fr-FR.resx b/FModel/Properties/Resources.fr-FR.resx index 3ec046df..e2c9a8d1 100644 --- a/FModel/Properties/Resources.fr-FR.resx +++ b/FModel/Properties/Resources.fr-FR.resx @@ -862,4 +862,7 @@ C'est maintenant le logiciel gratuit le plus utilisé pour leak sur Fortnite. Utiliser FModel en Anglais + + Pas de fond + \ No newline at end of file diff --git a/FModel/Properties/Resources.it-IT.resx b/FModel/Properties/Resources.it-IT.resx index c7159f6b..d3ce5585 100644 --- a/FModel/Properties/Resources.it-IT.resx +++ b/FModel/Properties/Resources.it-IT.resx @@ -820,4 +820,7 @@ Col tempo sono state aggiunte nuove funzioni e molti altri utenti hanno comincia Al momento non ci sono immagini da copiare + + Nessuno Sfondo + \ No newline at end of file diff --git a/FModel/Properties/Resources.resx b/FModel/Properties/Resources.resx index a0116ac1..b43ec0bb 100644 --- a/FModel/Properties/Resources.resx +++ b/FModel/Properties/Resources.resx @@ -1098,4 +1098,10 @@ It's now the most used free software to leak on Fortnite. Use FModel in English + + No Background + + + ..\Resources\EIconDesign_NoBackground.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/Resources/EIconDesign_NoBackground.png b/FModel/Resources/EIconDesign_NoBackground.png new file mode 100644 index 0000000000000000000000000000000000000000..f9209eff33e0a989c7acc955baa045c8fc7e8aca GIT binary patch literal 8639 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 literal 0 HcmV?d00001 diff --git a/FModel/ViewModels/ComboBox/ComboBoxViewModel.cs b/FModel/ViewModels/ComboBox/ComboBoxViewModel.cs index 2dca0b20..26c954fa 100644 --- a/FModel/ViewModels/ComboBox/ComboBoxViewModel.cs +++ b/FModel/ViewModels/ComboBox/ComboBoxViewModel.cs @@ -26,9 +26,10 @@ static class ComboBoxVm public static ObservableCollection designCbViewModel = new ObservableCollection { new ComboBoxViewModel { Id = 0, Content = Properties.Resources.Default, Property = EIconDesign.Default }, - new ComboBoxViewModel { Id = 1, Content = Properties.Resources.NoText, Property = EIconDesign.NoText }, - new ComboBoxViewModel { Id = 2, Content = Properties.Resources.Minimalist, Property = EIconDesign.Mini }, - new ComboBoxViewModel { Id = 3, Content = Properties.Resources.Flat, Property = EIconDesign.Flat } + new ComboBoxViewModel { Id = 1, Content = Properties.Resources.NoBackground, Property = EIconDesign.NoBackground }, + new ComboBoxViewModel { Id = 2, Content = Properties.Resources.NoText, Property = EIconDesign.NoText }, + new ComboBoxViewModel { Id = 3, Content = Properties.Resources.Minimalist, Property = EIconDesign.Mini }, + new ComboBoxViewModel { Id = 4, Content = Properties.Resources.Flat, Property = EIconDesign.Flat } }; public static ObservableCollection gamesCbViewModel = new ObservableCollection(); diff --git a/FModel/Windows/Settings/IconCreator.xaml.cs b/FModel/Windows/Settings/IconCreator.xaml.cs index d13a26f6..c9702fa9 100644 --- a/FModel/Windows/Settings/IconCreator.xaml.cs +++ b/FModel/Windows/Settings/IconCreator.xaml.cs @@ -129,7 +129,7 @@ private void DrawPreview() if (Designs_CbBox.HasItems && Designs_CbBox.SelectedIndex >= 0 && Designs_CbBox.SelectedItem is ComboBoxViewModel selectedItem) { using SKBitmap rarityBase = SKBitmap.Decode(Application.GetResourceStream(new Uri($"pack://application:,,,/Resources/EIconDesign_{(EIconDesign)selectedItem.Property}.png")).Stream); - using var ret = new SKBitmap(512, 512, SKColorType.Rgba8888, SKAlphaType.Opaque); + using var ret = new SKBitmap(512, 512, SKColorType.Rgba8888, SKAlphaType.Premul); using var c = new SKCanvas(ret); c.DrawBitmap(rarityBase, new SKRect(0, 0, 512, 512), new SKPaint { FilterQuality = SKFilterQuality.High, IsAntialias = true });