diff --git a/lib/mod_list.dart b/lib/mod_list.dart index 23219a6..3db8812 100644 --- a/lib/mod_list.dart +++ b/lib/mod_list.dart @@ -240,18 +240,6 @@ class ModList { } } - //LoadOrder loadRequired([LoadOrder? loadOrder]) { - // loadOrder ??= LoadOrder(); - // final toEnable = []; - // for (final modid in activeMods.keys) { - // loadDependencies(modid, loadOrder, toEnable); - // } - // for (final modid in toEnable) { - // setEnabled(modid, true); - // } - // return generateLoadOrder(loadOrder); - //} - LoadOrder generateLoadOrder([LoadOrder? loadOrder]) { loadOrder ??= LoadOrder(); final logger = Logger.instance; @@ -574,6 +562,27 @@ class ModList { } return generateLoadOrder(loadOrder); } + + LoadOrder loadRequiredBaseGame([LoadOrder? loadOrder]) { + loadOrder ??= LoadOrder(); + final baseGameMods = + mods.values.where((mod) => mod.isBaseGame || mod.isExpansion).toList(); + // You would probably want to load these too if you had them + final specialMods = + mods.values + .where( + (mod) => + mod.id.contains("harmony") || + mod.id.contains("prepatcher") || + mod.id.contains("betterlog"), + ) + .toList(); + + enableMods(baseGameMods.map((mod) => mod.id).toList()); + enableMods(specialMods.map((mod) => mod.id).toList()); + + return loadRequired(loadOrder); + } } String _expansionNameFromId(String id) {