Mod dependency resolution improvements (#7972)

* soft dependencies + better mod resolution algorithm

* update ModMeta#toString

* var

* add #7962 bugfix

* Use existing code to resolve

* add state text for mod dialog

* bugfix

* fix error text

* remove external resolver class

It's simpler like that :)
This commit is contained in:
Phinner
2023-02-01 20:21:42 +00:00
committed by GitHub
parent 2dcab97b6d
commit 0d2dfadba7
3 changed files with 156 additions and 109 deletions

View File

@@ -329,6 +329,10 @@ public class ModsDialog extends BaseDialog{
return "@mod.blacklisted";
}else if(!item.isSupported()){
return "@mod.incompatiblegame";
}else if(item.state == ModState.circularDependencies){
return "@mod.circulardependencies";
}else if(item.state == ModState.incompleteDependencies){
return "@mod.incompletedependencies";
}else if(item.hasUnmetDependencies()){
return "@mod.unmetdependencies";
}else if(item.hasContentErrors()){
@@ -346,6 +350,10 @@ public class ModsDialog extends BaseDialog{
return "@mod.blacklisted.details";
}else if(!item.isSupported()){
return Core.bundle.format("mod.requiresversion.details", item.meta.minGameVersion);
}else if(item.state == ModState.circularDependencies){
return "@mod.circulardependencies.details";
}else if(item.state == ModState.incompleteDependencies){
return Core.bundle.format("mod.incompletedependencies.details", item.missingDependencies.toString(", "));
}else if(item.hasUnmetDependencies()){
return Core.bundle.format("mod.missingdependencies.details", item.missingDependencies.toString(", "));
}else if(item.hasContentErrors()){