Utilities for managing dependencies. Provides two key functions: - Ensure a mod is not loaded if a dependency is missing or has a mismatched version. - Ensure mods are loaded in the correct order (dependency mods before dependent mods).

Static methods

staticcompileDependencies(modList:Array<ModMetadata>):Map<String, VersionRule>

Given a list of mods, return a merged list of mod dependency versions.

For example, if one mod requires >1.2.0 of modA and another requires >1.3.0 of modA, the merged list will be [modA: '>1.2.0 && >1.3.0'].

@:value({ skipErrors : false })staticsortByDependencies(modList:Array<ModMetadata>, skipErrors:Bool = false):Array<ModMetadata>

Given an ordered list of mods, return a reordered list of mods which satisfies dependency order.

Parameters:

mods

The list of mods to reorder.

ignoreErrors

If true, omit mods which cannot be reordered or whose dependencies are not met. If false, raise an error in these cases and return [].

Returns:

The reordered list of mods, or [] if an error occurred.