Fix up logging in sortmods

This commit is contained in:
2025-03-16 00:15:10 +01:00
parent 1ef81eeb17
commit c5cbbe5b7e

View File

@@ -790,37 +790,38 @@ class ModList {
// Sort mods based on dependencies and return the sorted list
List<String> sortMods() {
print("Building dependency graph...");
final logger = Logger.instance;
logger.info("Building dependency graph...");
final hardGraph = buildDependencyGraph();
// Check for cycles in hard dependencies
final cycle = detectCycle(hardGraph);
if (cycle != null) {
print(
"Warning: Cycle in hard dependencies detected: ${cycle.join(" -> ")}",
logger.warning(
"Cycle in hard dependencies detected: ${cycle.join(" -> ")}",
);
print("Will attempt to break cycle to produce a valid load order");
logger.info("Will attempt to break cycle to produce a valid load order");
}
print(
logger.info(
"Performing topological sort for hard dependencies (prioritizing larger mods)...",
);
final hardOrder = topologicalSort(hardGraph);
print("Adjusting for soft dependencies...");
logger.info("Adjusting for soft dependencies...");
final softGraph = buildSoftDependencyGraph();
final finalOrder = adjustForSoftDependencies(hardOrder, softGraph);
// Check for incompatibilities
final incompatibilities = findIncompatibilities();
if (incompatibilities.isNotEmpty) {
print("Warning: Incompatible mods detected:");
logger.warning("Incompatible mods detected:");
for (final pair in incompatibilities) {
print(" - ${mods[pair[0]]?.name} and ${mods[pair[1]]?.name}");
logger.warning(" - ${mods[pair[0]]?.name} and ${mods[pair[1]]?.name}");
}
}
print(
logger.info(
"Sorting complete. Final mod order contains ${finalOrder.length} mods.",
);
return finalOrder;