From 7f066fdd50297a055ad039d8f5b18146a1ce9eb7 Mon Sep 17 00:00:00 2001 From: mikx Date: Fri, 6 Jan 2023 01:27:05 -0500 Subject: [PATCH] Tier Updates --- PoE-MxFilterGen/PoE-MxFilterGen.csproj | 1 + PoE-MxFilterGen/compiler/section.cs | 136 +++++++++ PoE-MxFilterGen/generator/tier.cs | 277 ++++++++++++++---- PoE-MxFilterGen/json/settings.cs | 46 ++- PoE-MxFilterGen/main.cs | 102 +++++-- PoE-MxFilterGen/msg.cs | 6 +- ...gnTimeResolveAssemblyReferencesInput.cache | Bin 21096 -> 21158 bytes ...oE-MxFilterGen.csproj.FileListAbsolute.txt | 12 + PoE-MxFilterGen/obj/Debug/mxfiltergen.exe | Bin 373248 -> 385536 bytes PoE-MxFilterGen/obj/Debug/mxfiltergen.pdb | Bin 120320 -> 142848 bytes PoE-MxFilterGen/structures.cs | 3 +- 11 files changed, 487 insertions(+), 96 deletions(-) create mode 100644 PoE-MxFilterGen/compiler/section.cs diff --git a/PoE-MxFilterGen/PoE-MxFilterGen.csproj b/PoE-MxFilterGen/PoE-MxFilterGen.csproj index ac089c0..c62a108 100644 --- a/PoE-MxFilterGen/PoE-MxFilterGen.csproj +++ b/PoE-MxFilterGen/PoE-MxFilterGen.csproj @@ -216,6 +216,7 @@ + diff --git a/PoE-MxFilterGen/compiler/section.cs b/PoE-MxFilterGen/compiler/section.cs new file mode 100644 index 0000000..5817821 --- /dev/null +++ b/PoE-MxFilterGen/compiler/section.cs @@ -0,0 +1,136 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PoE_MxFilterGen.compiler +{ + public class Block + { + public string Type { get; set; } + public bool Show { get; set; } + public List Class { get; set; } + public List BaseType { get; set; } + public string SetTextColor { get; set; } + public string SetBackgroundColor { get; set; } + public string SetBorderColor { get; set; } + public string SetFontSize { get; set; } + public List Conditions { get; set; } + public List Actions { get; set; } + } + + public class Condition + { + public string name { get; set; } + public string op { get; set; } + public string value { get; set; } + } + + public class Action + { + public string name { get; set; } + public string va { get; set; } + public object vb { get; set; } + public object vc { get; set; } + public object vd { get; set; } + } + + public class RootBlocks + { + public List blocks { get; set; } + } + internal class section + { + public static string outpath = "out/filson.filter"; + private static string iC; + private static string iB; + public static void Compile() + { + if (File.Exists(outpath)) { File.Delete("out/filson.filter"); } + ////////// Splash ////////// + File.AppendAllText(outpath, $"#### Filson - PoE Item Filter JSON Parsing - MxFilterGen v{main.version}{Environment.NewLine}"); + File.AppendAllText(outpath, $"#### Filson and MxFilterGen are developped by mikx.{Environment.NewLine}"); + File.AppendAllText(outpath, $"#### MxGit: https://mxgit.ovh/mikx/PoE-MxFilterGen{Environment.NewLine}"); + File.AppendAllText(outpath, $"#### MxPoE: https://mxpoe.ovh/{Environment.NewLine}"); + File.AppendAllText(outpath, $"#### Contact: mikx@mxpoe.ovh / http://discord.mxg.ovh{Environment.NewLine}"); + foreach (Block bl in JsonConvert.DeserializeObject(File.ReadAllText("filson/LEVELING.json", Encoding.UTF8)).blocks) + { + ////////// Skip a line ////////// + File.AppendAllText(outpath, Environment.NewLine); + ////////// Show or Hide ////////// + string bshow = ""; + if (bl.Show) { bshow = "Show"; } else { bshow = "Hide"; }; + File.AppendAllText(outpath, bshow + Environment.NewLine); + ////////// Class ////////// + if (bl.Class[0] != null) { + foreach (var c in bl.Class) { iC += string.Format(@" ""{0}""", c); } + File.AppendAllText(outpath, $" Class {iC} {Environment.NewLine}"); + } + ////////// Base ////////// + if (bl.BaseType[0] != null) + { + foreach (var b in bl.BaseType) { iB += string.Format(@" ""{0}""", b); } + File.AppendAllText(outpath, $" BaseType {iB} {Environment.NewLine}"); + } + ////////// SetTextColor ////////// + if (bl.SetTextColor != null) + { + File.AppendAllText(outpath, $" SetTextColor {bl.SetTextColor} {Environment.NewLine}"); + } + ////////// SetBackgroundColor ////////// + if (bl.SetBackgroundColor != null) + { + File.AppendAllText(outpath, $" SetBackgroundColor {bl.SetBackgroundColor} {Environment.NewLine}"); + } + ////////// SetBorderColor ////////// + if (bl.SetBorderColor != null) + { + File.AppendAllText(outpath, $" SetBorderColor {bl.SetBorderColor} {Environment.NewLine}"); + } + ////////// SetFontSize ////////// + File.AppendAllText(outpath, " SetFontSize " + bl.SetFontSize + Environment.NewLine); + ////////// Conditions ////////// + foreach (var con in bl.Conditions) + { + string cn; + string co; + string cv; + switch (con.name) + { + case "ItemLevel": + cn = con.name; + co = con.op; + cv = con.value; + File.AppendAllText(outpath, $" {cn} {co} {cv} {Environment.NewLine}"); + break; + case "Rarity": + cn = con.name; + co = con.op; + cv = con.value; + File.AppendAllText(outpath, $" {cn} {cv} {Environment.NewLine}"); + break; + } + } + ////////// Actions ////////// + foreach (var ac in bl.Actions) + { + string an; + string ava; + switch (ac.name) + { + case "CustomAlertSound": + an = ac.name; + ava = ac.va; + File.AppendAllText(outpath, $" {an} \"{ava}\" {Environment.NewLine}"); + break; + } + } + iB = ""; + iC = ""; + } + } + } +} diff --git a/PoE-MxFilterGen/generator/tier.cs b/PoE-MxFilterGen/generator/tier.cs index 5074c09..10820c9 100644 --- a/PoE-MxFilterGen/generator/tier.cs +++ b/PoE-MxFilterGen/generator/tier.cs @@ -1,97 +1,246 @@ -// Decompiled with JetBrains decompiler -// Type: PoE_MxFilterGen.generator.tier -// Assembly: mxfiltergen, Version=8.4.0.0, Culture=neutral, PublicKeyToken=null -// MVID: 9686B206-07DB-4C70-B4F4-1F6EF4D87358 -// Assembly location: C:\Users\blood\OneDrive\Desktop\mxfiltergen.exe - -using Newtonsoft.Json; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Text; +using System.Linq; namespace PoE_MxFilterGen.generator { internal class tier { private static string iB; - private static string bAxe; - private static string bBow; - private static string bClaw; - private static string bDagger; - private static string bFishing; - private static string bMace; - private static string bSceptre; - private static string bStaff; - private static string bSword; - private static string bWand; - private static string bBody; - private static string bBoots; - private static string bGloves; - private static string bHelmet; - private static string bShield; - private static string bQuiver; - public static void Gen(string section, int tierValue, bool tier1HAxe, bool tier2HAxe, bool tierBow, bool tierClaw, bool tierDagger, bool tier1HMace, bool tier2HMace, bool tierSceptre, bool tierStaff, bool tier1HSword, bool tier2HSword, bool tierWand, bool tierBody, bool tierBoots, bool tierGloves, bool tierHelmet, bool tierShield, bool tierQuiver) + private static List iBA = new List(); + private static string iBInt; + private static List iBIntA = new List(); + private static string iBStr; + private static List iBStrA = new List(); + private static string iBDex; + private static List iBDexA = new List(); + + public static string[] Int() + { + string[] Int = new string[] { + "Wand", + "Sorcerer", + "Mind", + "Bone", + "Silk", + "Arcanist", + "Spirit", + "Solaris", + "Slippers", + "Samite", + "Demon's Horn", + "Conjurer Gloves", + "Slaughter Knife", + "Deicide", + "Conjurer", + "Necromancer", + "Deicide", + "Platinum Kris", + "Zealot Boots", + "Golden Kris", + "Steel Circlet", + "Butcher Knife", + "Embroidered Gloves" + }; + return Int; + } + + public static string[] Str() + { + string[] Str = new string[] { + "Astral", + "Tower", + "Burgonet", + "Ancient", + "Fencer", + "Goliath", + "Pig-Faced", + "Crusader Boots", + "Vaal Gauntlets", + "Prophet Crown", + "Antique Greaves", + "Vaal Greaves", + "Siege Helmet", + "Reinforced Greeves", + "Soldier Boots", + "Aventail Helmet", + "Reaver Helmet", + "Saint's Hauberk", + "Samnite Helmet" + }; + return Str; + } + + public static string[] Dex() + { + string[] Dex = new string[] { + "Claw", + "Bow", + "Quiver", + "Deerskin", + "Ambusher", + "Wyrnmscale", + "Gouger", + "Dagger", + "Spiked", + "Hood", + "Ursine", + "Oak", + "Carnal", + "Vaal Buckler", + "Nightmare Bascinet", + "Poignard", + "Gutting Knife", + "Vaal Mask", + "Throat Stabber", + "Lion Pelt", + "Stealth Gloves", + "Battle Buckler", + "Shagreen Boots", + "Shagreen Gloves", + "Sharkskin Gloves", + "Enameled Buckler", + "Corsair Sword" + + }; + return Dex; + } + + public static void Gen(string section, int tierValue, bool tier1HAxe, bool tier2HAxe, bool tierBow, bool tierClaw, bool tierDagger, bool tier1HMace, bool tier2HMace, bool tierSceptre, bool tierStaff, bool tier1HSword, bool tier2HSword, bool tierWand, bool tierBody, bool tierBoots, bool tierGloves, bool tierHelmet, bool tierShield, bool tierQuiver, List tierBaseInclude, List tierBaseExclude) { var ln = JsonConvert.DeserializeObject(File.ReadAllText("data/ninja.base.json", Encoding.UTF8)); - ForEachLine(ln, "One Handed Axe", tier1HAxe, section, tierValue); - ForEachLine(ln, "Two Handed Axe", tier2HAxe, section, tierValue); - ForEachLine(ln, "Bow", tierBow, section, tierValue); - ForEachLine(ln, "Claw", tierClaw, section, tierValue); - ForEachLine(ln, "Dagger", tierDagger, section, tierValue); - ForEachLine(ln, "One Handed Mace", tier1HMace, section, tierValue); - ForEachLine(ln, "Two Handed Mace", tier2HMace, section, tierValue); - ForEachLine(ln, "Sceptre", tierSceptre, section, tierValue); - ForEachLine(ln, "Staff", tierStaff, section, tierValue); - ForEachLine(ln, "One Handed Sword", tier1HSword, section, tierValue); - ForEachLine(ln, "Two Handed Sword", tier2HSword, section, tierValue); - ForEachLine(ln, "Wand", tierWand, section, tierValue); - ForEachLine(ln, "Body Armour", tierBody, section, tierValue); - ForEachLine(ln, "Boots", tierBoots, section, tierValue); - ForEachLine(ln, "Gloves", tierGloves, section, tierValue); - ForEachLine(ln, "Helmet", tierHelmet, section, tierValue); - ForEachLine(ln, "Shield", tierShield, section, tierValue); - ForEachLine(ln, "Quiver", tierQuiver, section, tierValue); + ForEachLine(ln, "One Handed Axe", tier1HAxe, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "Two Handed Axe", tier2HAxe, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "Bow", tierBow, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "Claw", tierClaw, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "Dagger", tierDagger, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "One Handed Mace", tier1HMace, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "Two Handed Mace", tier2HMace, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "Sceptre", tierSceptre, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "Staff", tierStaff, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "One Handed Sword", tier1HSword, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "Two Handed Sword", tier2HSword, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "Wand", tierWand, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "Body Armour", tierBody, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "Boots", tierBoots, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "Gloves", tierGloves, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "Helmet", tierHelmet, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "Shield", tierShield, section, tierValue, tierBaseInclude, tierBaseExclude); + ForEachLine(ln, "Quiver", tierQuiver, section, tierValue, tierBaseInclude, tierBaseExclude); } - public static void ForEachLine(dynamic lnb, string type, bool tierBool, string section, int tierValue) + public static void ForEachLine(dynamic lnb, string type, bool tierBool, string section, int tierValue, List tierBaseInclude, List tierBaseExclude) { int c = 0; - if (tierBool) + List stringList = new List(); + var ln = JsonConvert.DeserializeObject(File.ReadAllText("data/ninja.base.json", Encoding.UTF8)); + foreach (var line in ln.lines) { - var ln = JsonConvert.DeserializeObject(File.ReadAllText("data/ninja.base.json", Encoding.UTF8)); - foreach (var line in ln.lines) + string[] cint = Int(); + string[] cstr = Str(); + string[] cdex = Dex(); + if (line.itemType == type && tierBool && line.levelRequired <= 86 && line.variant == null && line.chaosValue >= tierValue && !stringList.Contains(line.baseType)) { - if (line.itemType == type && tierBool && line.levelRequired <= 86 && line.variant == null && line.chaosValue >= tierValue) + if (!tierBaseExclude.Contains(line.baseType)) { c++; - iB += string.Format(@" ""{0}""", line.baseType); + iBA.Add(line.baseType); + if (cint.Any(line.baseType.Contains)) + { + iBIntA.Add(line.baseType); + iBA.Remove(line.baseType); + } + if (cstr.Any(line.baseType.Contains)) + { + iBStrA.Add(line.baseType); + iBA.Remove(line.baseType); + } + if (cdex.Any(line.baseType.Contains)) + { + iBDexA.Add(line.baseType); + iBA.Remove(line.baseType); + } + stringList.Add(line.baseType); } } + else if (line.itemType == type && !tierBool && line.levelRequired <= 86 && line.variant == null && line.chaosValue >= tierValue && tierBaseInclude.Contains(line.baseType) && !stringList.Contains(line.baseType)) + { + c++; + iBA.Add(line.baseType); + if (cint.Any(line.baseType.Contains)) + { + iBIntA.Add(line.baseType); + iBA.Remove(line.baseType); + } + if (cstr.Any(line.baseType.Contains)) + { + iBStrA.Add(line.baseType); + iBA.Remove(line.baseType); + } + if (cdex.Any(line.baseType.Contains)) + { + iBDexA.Add(line.baseType); + iBA.Remove(line.baseType); + } + stringList.Add(line.baseType); + } } - - if (tierBool && c != 0) + + foreach (string b in iBA) { - GenerateFile(section, iB, type); - } - iB = ""; + iB += string.Format(@" ""{0}""", b); + } + + foreach (string b in iBIntA) + { + iBInt += string.Format(@" ""{0}""", b); + } + + foreach (string b in iBStrA) + { + iBStr += string.Format(@" ""{0}""", b); + } + + foreach (string b in iBDexA) + { + iBDex += string.Format(@" ""{0}""", b); + } + + if (c != 0) + { + if (iBA.Count >= 1) { GenerateFile(section, iB, type, "Base", " SetBackgroundColor 54 54 54 255"); } + if (iBIntA.Count >= 1) { GenerateFile(section, iBInt, type, "Int", " SetBackgroundColor 56 69 89 255"); } + if (iBStrA.Count >= 1) { GenerateFile(section, iBStr, type, "Str", " SetBackgroundColor 81 54 54 255"); } + if (iBDexA.Count >= 1) { GenerateFile(section, iBDex, type, "Dex", " SetBackgroundColor 50 69 49 255"); } + } c = 0; + iBA = new List(); + iBIntA = new List(); + iBStrA = new List(); + iBDexA = new List(); + iB = ""; + iBInt = ""; + iBStr = ""; + iBDex = ""; } - public static void GenerateFile(string section, string iB, string type) + public static void GenerateFile(string section, string iB, string type, string att, string SetBackgroundColor) { - if (iB == null) + if (iB == null || iB == "") iB = "\"\""; string path = "gen/" + section + ".filter"; - File.AppendAllText(path, $"# Section: {section} ({type})" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(path, $"# Section: {section} ({type})({att})" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, Environment.NewLine ?? "", Encoding.UTF8); File.AppendAllText(path, "Show" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " BaseType " + iB + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " HasExplicitMod \"Veiled\"" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " Rarity = Rare" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetTextColor 255 215 0" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(path, " SetBackgroundColor 54 54 54" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(path, SetBackgroundColor + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetBorderColor 112 255 112 255" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetFontSize 35" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " MinimapIcon 1 Green Star" + Environment.NewLine, Encoding.UTF8); @@ -103,7 +252,7 @@ namespace PoE_MxFilterGen.generator File.AppendAllText(path, " FracturedItem True" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " Rarity = Rare" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetTextColor 255 215 0" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(path, " SetBackgroundColor 54 54 54" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(path, SetBackgroundColor + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetBorderColor 112 255 112 255" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetFontSize 35" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " MinimapIcon 1 Green Star" + Environment.NewLine, Encoding.UTF8); @@ -115,7 +264,7 @@ namespace PoE_MxFilterGen.generator File.AppendAllText(path, " SynthesisedItem True" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " Rarity = Rare" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetTextColor 255 215 0" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(path, " SetBackgroundColor 54 54 54" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(path, SetBackgroundColor + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetBorderColor 112 255 112 255" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetFontSize 35" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " MinimapIcon 1 Green Star" + Environment.NewLine, Encoding.UTF8); @@ -127,7 +276,7 @@ namespace PoE_MxFilterGen.generator File.AppendAllText(path, " Identified True" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " Rarity = Rare" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetTextColor 255 215 0" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(path, " SetBackgroundColor 54 54 54" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(path, SetBackgroundColor + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetBorderColor 0 0 0" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetFontSize 35" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " CustomAlertSound \"mx_tier.mp3\"" + Environment.NewLine, Encoding.UTF8); @@ -137,7 +286,7 @@ namespace PoE_MxFilterGen.generator File.AppendAllText(path, " Corrupted True" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " Rarity = Rare" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetTextColor 255 215 0" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(path, " SetBackgroundColor 54 54 54" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(path, SetBackgroundColor + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetBorderColor 210 0 0" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetFontSize 35" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " CustomAlertSound \"mx_tier.mp3\"" + Environment.NewLine, Encoding.UTF8); @@ -148,7 +297,7 @@ namespace PoE_MxFilterGen.generator File.AppendAllText(path, " ItemLevel <= 100" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " Rarity = Rare" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetTextColor 255 215 0" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(path, " SetBackgroundColor 54 54 54" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(path, SetBackgroundColor + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetBorderColor 184 218 242" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetFontSize 35" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " CustomAlertSound \"mx_tier.mp3\"" + Environment.NewLine, Encoding.UTF8); @@ -159,7 +308,7 @@ namespace PoE_MxFilterGen.generator File.AppendAllText(path, " ItemLevel <= 74" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " Rarity = Rare" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetTextColor 255 215 0" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(path, " SetBackgroundColor 54 54 54" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(path, SetBackgroundColor + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetBorderColor 222 118 0" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetFontSize 35" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " CustomAlertSound \"mx_tier.mp3\"" + Environment.NewLine, Encoding.UTF8); @@ -170,7 +319,7 @@ namespace PoE_MxFilterGen.generator File.AppendAllText(path, " ItemLevel <= 74" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " Rarity = Rare" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetTextColor 255 215 0" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(path, " SetBackgroundColor 54 54 54" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(path, SetBackgroundColor + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetBorderColor 222 118 0" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " SetFontSize 35" + Environment.NewLine, Encoding.UTF8); File.AppendAllText(path, " CustomAlertSound \"mx_tier.mp3\"" + Environment.NewLine, Encoding.UTF8); diff --git a/PoE-MxFilterGen/json/settings.cs b/PoE-MxFilterGen/json/settings.cs index 2169987..dafbdc9 100644 --- a/PoE-MxFilterGen/json/settings.cs +++ b/PoE-MxFilterGen/json/settings.cs @@ -32,8 +32,12 @@ namespace PoE_MxFilterGen.json public int uniqueValue { get; set; } public int fossilValue { get; set; } public int cardValue { get; set; } - public string updateurl { get; set; } - public string section { get; set; } + public List tierBaseInclude { get; set; } + public List tierBaseExclude { get; set; } + public bool install { get; set; } + public string path { get; set; } + public string structure { get; set; } + } class settings @@ -62,12 +66,6 @@ namespace PoE_MxFilterGen.json return j.cardValue; } - public static string GetSection() - { - SETTINGS j = JsonConvert.DeserializeObject(File.ReadAllText("settings.json")); - return j.section; - } - internal static bool GetTier1HAxe() { SETTINGS j = JsonConvert.DeserializeObject(File.ReadAllText("settings.json")); @@ -176,7 +174,31 @@ namespace PoE_MxFilterGen.json return j.tierQuiver; } - public static void WriteSection(string section) + internal static bool GetInstall() + { + SETTINGS j = JsonConvert.DeserializeObject(File.ReadAllText("settings.json")); + return j.install; + } + + internal static string GetPath() + { + SETTINGS j = JsonConvert.DeserializeObject(File.ReadAllText("settings.json")); + return j.path; + } + + internal static List GetTierBaseInclude() + { + SETTINGS j = JsonConvert.DeserializeObject(File.ReadAllText("settings.json")); + return j.tierBaseInclude; + } + + internal static List GetTierBaseExclude() + { + SETTINGS j = JsonConvert.DeserializeObject(File.ReadAllText("settings.json")); + return j.tierBaseExclude; + } + + public static void WriteSection(string structure) { SETTINGS js = JsonConvert.DeserializeObject(File.ReadAllText($@"settings.json")); SETTINGS se = new SETTINGS @@ -201,9 +223,13 @@ namespace PoE_MxFilterGen.json tierShield = js.tierShield, tierQuiver = js.tierQuiver, uniqueValue = js.uniqueValue, + tierBaseInclude = js.tierBaseInclude, + tierBaseExclude = js.tierBaseExclude, fossilValue = js.fossilValue, cardValue = js.cardValue, - section = section + install = js.install, + path = js.path, + structure = structure }; var raw = JsonConvert.SerializeObject(se, Formatting.Indented); File.WriteAllText($@"settings.json", raw); diff --git a/PoE-MxFilterGen/main.cs b/PoE-MxFilterGen/main.cs index 3a39c70..6311034 100644 --- a/PoE-MxFilterGen/main.cs +++ b/PoE-MxFilterGen/main.cs @@ -11,7 +11,7 @@ namespace PoE_MxFilterGen internal class main { private static DateTime dt = DateTime.Now; - public static string version = "10.5.1"; + public static string version = "10.7.1"; public static string fDate = string.Format("{0}-{1}-{2}", (object)main.dt.Day, (object)main.dt.Month, (object)main.dt.Year); public static string api = ""; public static string giturl = "https://mxgit.ovh/mikx"; @@ -23,34 +23,56 @@ namespace PoE_MxFilterGen public static int sprog = 0; public static int stotal = 0; public static bool debug = false; + public static bool install; + public static string ipath; + public static string docpath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); private static void Main(string[] args) { - if (!File.Exists("config/mxfiltergen_settings.json")) + if (!Directory.Exists("data")) + { + Directory.CreateDirectory("data"); + } + if (!Directory.Exists("gen")) + { + Directory.CreateDirectory("gen"); + } + if (!Directory.Exists("structure")) + { + Directory.CreateDirectory("structure"); + } + if (!Directory.Exists("out")) + { + Directory.CreateDirectory("out"); + } + if (!File.Exists("settings.json")) { msg.CMW("ERROR: settings.json not found! Downloading a template...", true, 3); - web.DownloadFile("https://mxpoe.ovh/mxfilter/data/settings_template.json", "config/mxfiltergen_settings.json"); + web.DownloadFile("https://mxpoe.ovh/mxfilter/mxfiltergen_settings.json", "settings.json"); } - msg.Splash(); + if (!File.Exists("mxfiltergen_var.json")) + { + msg.CMW("ERROR: mxfiltergen_var.json not found! Downloading a template...", true, 3); + web.DownloadFile("https://mxpoe.ovh/mxfilter/mxfiltergen_var.json", "mxfiltergen_var.json"); + } + msg.Splash("MxFilterGen", "mikx"); main.CleanDirData(); - main.league = JsonConvert.DeserializeObject(File.ReadAllText("config/mxfiltergen_var.json")).league; + main.league = JsonConvert.DeserializeObject(File.ReadAllText("mxfiltergen_var.json")).league; main.api = "https://poe.ninja/api/data/"; msg.CMW("League: " + main.league, true, 1); msg.CMW(string.Format("Min. Unique Value - {0}c", (object)settings.GetUniqueValue()), true, 1); msg.CMW(string.Format("Min. Fossil Value - {0}c", (object)settings.GetFossilValue()), true, 1); msg.CMW(string.Format("Min. Card Value - {0}c", (object)settings.GetCardValue()), true, 1); msg.CMW("Checking for required dirs...", true, 1); - if (!Directory.Exists("data")) - Directory.CreateDirectory("data"); - if (!Directory.Exists("gen")) - Directory.CreateDirectory("gen"); - if (!Directory.Exists("structure")) - Directory.CreateDirectory("structure"); msg.CMW("Cleaning the base dirs...", true, 1); main.CleanDirData(); msg.CMW("Cleaning the last filter from path...", true, 1); - foreach (string filter in structures.Filters()) - File.Delete("out/MxFilter_" + filter + ".filter"); + foreach (string filter in structures.Filters()) { + if (File.Exists("out/MxFilter_" + filter + ".filter")) + { + File.Delete("out/MxFilter_" + filter + ".filter"); + } + } msg.CMW("Downloading the latest API data from poe.ninja...", true, 1); web.SaveString(main.api + "itemoverview?league=" + main.league + "&type=UniqueArmour&language=en", "data/ninja.armour.json"); web.SaveString(main.api + "itemoverview?league=" + main.league + "&type=UniqueWeapon&language=en", "data/ninja.weapon.json"); @@ -59,6 +81,7 @@ namespace PoE_MxFilterGen web.SaveString(main.api + "currencyoverview?league=" + main.league + "&type=Currency&language=en", "data/ninja.currency.json"); web.SaveString(main.api + "itemoverview?league=" + main.league + "&type=Fossil&language=en", "data/ninja.fossil.json"); web.SaveString(main.api + "itemoverview?league=" + main.league + "&type=BaseType&language=en", "data/ninja.base.json"); + //compiler.section.Compile(); foreach (string filter in structures.Filters()) { string str = "MxFilter"; @@ -93,6 +116,10 @@ namespace PoE_MxFilterGen bool tierHelmet = settings.GetTierHelmet(); bool tierShield = settings.GetTierShield(); bool tierQuiver = settings.GetTierQuiver(); + install = settings.GetInstall(); + ipath = settings.GetPath(); + List tierBaseInclude = settings.GetTierBaseInclude(); + List tierBaseExclude = settings.GetTierBaseExclude(); switch (structure) { case "DIVINATION CARD (GEN)": @@ -111,7 +138,7 @@ namespace PoE_MxFilterGen fossil.Gen(section, fossilValue); break; case "Tiers (DATA)": - tier.Gen(section, tierValue, tier1HAxe, tier2HAxe, tierBow, tierClaw, tierDagger, tier1HMace, tier2HMace, tierSceptre, tierStaff, tier1HSword, tier2HSword, tierWand, tierBody, tierBoots, tierGloves, tierHelmet, tierShield, tierQuiver); + tier.Gen(section, tierValue, tier1HAxe, tier2HAxe, tierBow, tierClaw, tierDagger, tier1HMace, tier2HMace, tierSceptre, tierStaff, tier1HSword, tier2HSword, tierWand, tierBody, tierBoots, tierGloves, tierHelmet, tierShield, tierQuiver, tierBaseInclude, tierBaseExclude); break; } } @@ -168,11 +195,50 @@ namespace PoE_MxFilterGen main.ftotal = 0; main.fprog = 0; main.CleanDir(); - CurrencyValueOut(); - if(debug) + CurrencyValueOut(); + } + if (debug) + { + Console.ReadKey(); + } + else if (!debug && install) + { + msg.CMW("INFO: install is true and will act as a personal filter generator.", true, 2); + foreach (var f in structures.Filters()) { - Console.ReadKey(); - } + if (File.Exists($@"{docpath}\My Games\Path of Exile\MxFilter_{f}.filter")) + { + File.Copy($@"{docpath}\My Games\Path of Exile\MxFilter_{f}.filter", $@"{docpath}\My Games\Path of Exile\MxFilter_{f}.filter.backup", true); + File.Delete($@"{docpath}\My Games\Path of Exile\MxFilter_{f}.filter"); + } + } + if (ipath == "" || ipath == null) + { + msg.CMW("ERROR: install is true but there is no path given, using default windows path.", true, 3); + foreach (var f in structures.Filters()) + { + File.Copy($"out/MxFilter_{f}.filter", $@"{docpath}\My Games\Path of Exile\MxFilter_{f}.filter"); + } + foreach (var s in Directory.EnumerateFiles("sound")) + { + string sf = Path.GetFileName(s); + File.Copy($"{s}", $@"{docpath}\My Games\Path of Exile\{sf}", true); + } + } + else + { + foreach (var f in structures.Filters()) + { + File.Copy($"out/MxFilter_{f}.filter", $@"{ipath}\MxFilter_{f}.filter"); + } + foreach (var s in Directory.EnumerateFiles("sound")) + { + File.Copy($"sound/{s}", $@"{ipath}\{s}"); + } + } + } else + { + msg.CMW("INFO: install is false and will act as a remote generator.", true, 2); } } diff --git a/PoE-MxFilterGen/msg.cs b/PoE-MxFilterGen/msg.cs index 181dbb1..1723397 100644 --- a/PoE-MxFilterGen/msg.cs +++ b/PoE-MxFilterGen/msg.cs @@ -200,13 +200,13 @@ namespace PoE_MxFilterGen Console.WriteLine(); } - public static void Splash() + public static void Splash(string progname, string dev) { Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine(""); - Console.WriteLine("#### MxFilterGen"); + Console.WriteLine($"#### {progname}"); Console.WriteLine(string.Format("#### VERSION: {0}", (object)main.version)); - Console.WriteLine("#### DEV: mikx"); + Console.WriteLine($"#### DEV: {dev}"); Console.WriteLine("#### POWERED BY: poe.ninja"); Console.WriteLine(""); Console.ForegroundColor = ConsoleColor.White; diff --git a/PoE-MxFilterGen/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/PoE-MxFilterGen/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 86ae6bd3431b95c54c81fae54c7dc17fbe0e66d6..468cb7d29c887907d933ef3fe06416cde6ab2932 100644 GIT binary patch delta 252 zcmaE{gmKwY#tn9^E%$ujDi{H!axVAY;NFx#U#|v Yh%UD|PiVW1pewpC)K3DNgZ)LB0brF}+yDRo delta 162 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 delta 25697 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 diff --git a/PoE-MxFilterGen/obj/Debug/mxfiltergen.pdb b/PoE-MxFilterGen/obj/Debug/mxfiltergen.pdb index 1760814603ea27675b93dc0fc8d3470788393316..334d78bda051cf875a778ab4a101fcf8148bf202 100644 GIT binary patch literal 142848 zcmeF43xJhX_4dyw3?QI@popNu9T5-^6%duna8pneypO^#bAZudW|$dnhI&*?R5VH~ zG%Qp~OjI&VG)yc~Dl9B4D=I8ZEL2h~{G$AR&%PY?IqVrw;cpkVE}nVccdfP8zOB9X zelKTqNl|5aRr#dqydftIIq}52(PM|@oz|mg&&G$f${(8`9b*1Z9G#O$H{SlgTs{BwWpDVSUOA=@G@&DiNJA4JepmC(YtUUbk8Mh5zwdm37UVimgFL_p7%MSTA zoquxnDbIco|AT5EHvTo~h5ld1DpEH72Nm<6sWsHV!S=7AV*W=?@0@u4SufQ4dD8`B z6Kl?U@R0lWR_r4-oG@=y(<2Apa{J7~Z~oHqqw<`_oO`6*B=1sr*>FT}dJ$U`ose%2~{!g{-*Qk5Lhc=&b=3z%))NA?3hX)Qz zeR$FJ?Ml`@+hJ|qv1b1GbV_(I*V<|zyZzS=J?EY`|Mat_3(m6spy7R=y{ze^pErHB zYa+3;{>W!*8vpHAUpYH>@S2&`?+UoFF`Nmt{{qbv0pWV4xHzv1(}J3REn2k&g_x$yiqSA2RUJeYHB zHL$I?doH}_(Vf!@?!D`xTa({-=cyCgHMsQ;oxk7Xxv>LQ-EwYiHXOY6>D9pg zYX6(AUVG!&+nc`p;`oWLJw5B`*C$nMf3ADgi@&LJ*d3{jv{DIqwU%2DjYnHWt_llCvTOYda+fO`y@3-%Gcu8$G9K81F)xiF0|MBlV zTd!@OBi{P?^nZPB_*n%n-F5jddjI2=-!Gcja^_E;{?ctne0n83m~(A4u)o^BeC$_; z9X0y?=PPH{J*02tw5}hX^v;j|{y^n#o?10!=cabOe^{Fh2d{m4HL$(CYoO8k@C+z6YX7=Fx+rh*Ji`PYoA^X?63C!Q}=iOG5#Ba<{b4v zk8XF2e)goiKfLzndCy+@)Q?B6Y4-V->Q{eyB|MmOZ8fmJ+W)dMK3wwR*FR{|{jV<$ zS^3DJsUKX}?BcOcb}7B7>DtS#di2gCYqR0twNI}G_E-D=Gx6&M$2aTp^S5_S-Z=Zb zhnn0||J&DZpL^GJm!Eyygk$?3^W#siga>o3tp@g2`(OR-%HsR3z3QY7);{vDR&Pw1 z(QjwrVO#5WJ?w>H$;oT3oYJ8-8xCIk^lD&#wf{-WANj&B9$)#7yIa54qSYU+|IWSd z|Kf`CkA7zTmcH-b{oo%LxBB!-crfSMYG8l0|J4^wIpm6Gny&oa*T2?l$vclNf4HMQNdErz{1?99h&v*F;iPrnAf;qK6Q{PZn4Xutgvz_9&5kZ7E$+!tSc%?R#lZ(&fb3pMm2tP8?UM=FT=}KSC^Dc zuKI-5)vW8I+ch&e@e^8;t>L5FP*q(yy@;7K`AI9L21Os;qN!DrKVhw8Yxo#86qcAt z`V)Bdso5$%x)te(VSG_(VO7;9Zlc=teRTVZrdL)b%Zg_2C-Y+J&L9Z9p?*B>+{v5Z z!`%ykm*gfAji7dfj?cg=45s~ok|M@da#ZVgH9`uWe8_EGQ94PWX0#@)w#bqas0x2R|6 zS`ze0y~gwQxUJ#k;#F@Fudao>>Mfr4fuH5QBwqC*@#hPTA4UMgN)3whO>J#Xc(3;!Zs^>Xp*TF9%><9VO?-S$@E)u@*-Yu^FhD7e+oSEF5=a-kXIhY^A0V#X{mVSdBm%0A+Nlg=WTx5zfKje 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%0DMA1&wAK>o1FCi&mhjX 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