diff --git a/Filtration.Parser/Services/ItemFilterScriptTranslator.cs b/Filtration.Parser/Services/ItemFilterScriptTranslator.cs
index 392f3e3..6b549f2 100644
--- a/Filtration.Parser/Services/ItemFilterScriptTranslator.cs
+++ b/Filtration.Parser/Services/ItemFilterScriptTranslator.cs
@@ -75,6 +75,7 @@ namespace Filtration.Parser.Services
}
lines[i] = lines[i].TrimStart('#');
+ lines[i] = lines[i].TrimStart(' ');
lines[i] = lines[i].Replace("#", " # ");
var spaceOrEndOfLinePos = lines[i].IndexOf(" ", StringComparison.Ordinal) > 0 ? lines[i].IndexOf(" ", StringComparison.Ordinal) : lines[i].Length;
var lineOption = lines[i].Substring(0, spaceOrEndOfLinePos);
@@ -108,11 +109,49 @@ namespace Filtration.Parser.Services
return lines.Aggregate((c, n) => c + Environment.NewLine + n);
}
+ public static string ConvertCommentedToDisabled(string inputString)
+ {
+ var lines = Regex.Split(inputString, "\r\n|\r|\n");
+ var parsingCommented = false;
+ for (var i = 0; i < lines.Length; i++)
+ {
+ if (!parsingCommented)
+ {
+ if (lines[i].StartsWith("# Show") || lines[i].StartsWith("#Show"))
+ {
+ parsingCommented = true;
+ lines[i] = "#Disabled Block Start" + Environment.NewLine + lines[i];
+ }
+ }
+ else
+ {
+ if (!lines[i].StartsWith("#"))
+ {
+ parsingCommented = false;
+ lines[i - 1] += Environment.NewLine + "#Disabled Block End";
+ }
+ }
+ }
+ if(parsingCommented)
+ {
+ lines[lines.Length - 1] += Environment.NewLine + "#Disabled Block End";
+ }
+
+ return string.Join(Environment.NewLine, lines);
+ }
+
public IItemFilterScript TranslateStringToItemFilterScript(string inputString)
{
var script = _itemFilterScriptFactory.Create();
_blockGroupHierarchyBuilder.Initialise(script.ItemFilterBlockGroups.First());
+ //NeverSink's Indepth Loot Filter parsing
+ if (inputString.Contains("NeverSink's Indepth Loot Filter"))
+ {
+ inputString = ConvertCommentedToDisabled(inputString);
+ }
+
+
inputString = inputString.Replace("\t", "");
if (inputString.Contains("#Disabled Block Start"))
{
@@ -265,6 +304,13 @@ namespace Filtration.Parser.Services
}
}
+ //NeverSink's Indepth Loot Filter parsing
+ if (outputString.Contains("NeverSink's Indepth Loot Filter"))
+ {
+ outputString = Regex.Replace(outputString, "(\r)?\n#Disabled Block Start*(\r)?\n", Environment.NewLine);
+ outputString = Regex.Replace(outputString, "(\r)?\n#Disabled Block End*(\r)?\n", Environment.NewLine);
+ }
+
return outputString;
}
}
diff --git a/Filtration/ViewModels/ItemFilterCommentBlockViewModel.cs b/Filtration/ViewModels/ItemFilterCommentBlockViewModel.cs
index 3516348..6719cfc 100644
--- a/Filtration/ViewModels/ItemFilterCommentBlockViewModel.cs
+++ b/Filtration/ViewModels/ItemFilterCommentBlockViewModel.cs
@@ -1,6 +1,7 @@
using Filtration.ObjectModel;
using GalaSoft.MvvmLight.CommandWpf;
-
+using System;
+
namespace Filtration.ViewModels
{
internal interface IItemFilterCommentBlockViewModel : IItemFilterBlockViewModelBase
@@ -47,8 +48,22 @@ namespace Filtration.ViewModels
ItemFilterCommentBlock.Comment = value;
IsDirty = true;
RaisePropertyChanged();
+ RaisePropertyChanged("Header");
}
}
+ }
+
+ public string Header
+ {
+ get
+ {
+ string[] commentLines = ItemFilterCommentBlock.Comment.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
+ if (commentLines[0].StartsWith(@"============") || commentLines[0].StartsWith(@"------------"))
+ {
+ commentLines[0] = commentLines[1];
+ }
+ return commentLines[0].TrimStart(' ');
+ }
}
diff --git a/Filtration/Views/ItemFilterCommentBlockView.xaml b/Filtration/Views/ItemFilterCommentBlockView.xaml
index 2e561c8..2989243 100644
--- a/Filtration/Views/ItemFilterCommentBlockView.xaml
+++ b/Filtration/Views/ItemFilterCommentBlockView.xaml
@@ -76,8 +76,19 @@
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+