Skip to content

Commit bb902b5

Browse files
committed
enforce actual ordering of mods
1 parent f1a0b75 commit bb902b5

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

ModAssistant/Pages/Mods.xaml.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,36 @@ public async Task LoadMods()
129129

130130
ModsListView.ItemsSource = ModList;
131131

132+
try
133+
{
134+
var manualCategories = new string[] { "Core" };
135+
136+
ModList.Sort((a, b) =>
137+
{
138+
foreach (var category in manualCategories)
139+
{
140+
if (a.Category == category && b.Category == category) return 0;
141+
if (a.Category == category) return -1;
142+
if (b.Category == category) return 1;
143+
}
144+
145+
var categoryCompare = a.Category.CompareTo(b.Category);
146+
if (categoryCompare != 0) return categoryCompare;
147+
148+
var aRequired = !a.IsEnabled;
149+
var bRequired = !b.IsEnabled;
150+
151+
if (a.ModRequired && !b.ModRequired) return -1;
152+
if (b.ModRequired && !a.ModRequired) return 1;
153+
154+
return a.ModName.CompareTo(b.ModName);
155+
});
156+
}
157+
catch (Exception ex)
158+
{
159+
Console.WriteLine(ex.ToString());
160+
}
161+
132162
view = (CollectionView)CollectionViewSource.GetDefaultView(ModsListView.ItemsSource);
133163
PropertyGroupDescription groupDescription = new PropertyGroupDescription("Category");
134164
view.GroupDescriptions.Add(groupDescription);
@@ -306,6 +336,7 @@ public async Task PopulateModsList()
306336
ModName = mod.name,
307337
ModVersion = mod.version,
308338
ModDescription = mod.description.Replace("\r\n", " ").Replace("\n", " "),
339+
ModRequired = mod.required,
309340
ModInfo = mod,
310341
Category = mod.category
311342
};
@@ -603,6 +634,7 @@ public class ModListItem
603634
public string ModName { get; set; }
604635
public string ModVersion { get; set; }
605636
public string ModDescription { get; set; }
637+
public bool ModRequired { get; set; }
606638
public bool PreviousState { get; set; }
607639

608640
public bool IsEnabled { get; set; }

0 commit comments

Comments
 (0)