Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/binaries/data/mods/mod/gui/modmod/modmod.js
Show First 20 Lines • Show All 292 Lines • ▼ Show 20 Lines | |||||
*/ | */ | ||||
function isDependencyMet(dependency) | function isDependencyMet(dependency) | ||||
{ | { | ||||
let operator = dependency.match(g_CompareVersion); | let operator = dependency.match(g_CompareVersion); | ||||
let [name, version] = operator ? dependency.split(operator[0]) : [dependency, undefined]; | let [name, version] = operator ? dependency.split(operator[0]) : [dependency, undefined]; | ||||
return g_ModsEnabled.some(folder => | return g_ModsEnabled.some(folder => | ||||
g_Mods[folder].name == name && | g_Mods[folder].name == name && | ||||
(!operator || versionSatisfied(g_Mods[folder].version, operator, version))); | (!operator || versionSatisfied(g_Mods[folder].version, operator[0], version))); | ||||
} | } | ||||
/** | /** | ||||
* Compares the given versions using the given operator. | * Compares the given versions using the given operator. | ||||
* '-' or '_' is ignored. Only numbers are supported. | * '-' or '_' is ignored. Only numbers are supported. | ||||
* @note "5.3" < "5.3.0" | * @note "5.3" < "5.3.0" | ||||
*/ | */ | ||||
function versionSatisfied(version1, operator, version2) | function versionSatisfied(version1, operator, version2) | ||||
Show All 29 Lines | function versionSatisfied(version1, operator, version2) | ||||
return gt; | return gt; | ||||
} | } | ||||
function sortEnabledMods() | function sortEnabledMods() | ||||
{ | { | ||||
let dependencies = {}; | let dependencies = {}; | ||||
for (let folder of g_ModsEnabled) | for (let folder of g_ModsEnabled) | ||||
dependencies[folder] = g_Mods[folder].dependencies.map(d => d.split()[0]); | dependencies[folder] = g_Mods[folder].dependencies.map(d => d.split(g_CompareVersion)[0]); | ||||
g_ModsEnabled.sort((folder1, folder2) => | g_ModsEnabled.sort((folder1, folder2) => | ||||
dependencies[folder1].indexOf(g_Mods[folder2].name) != -1 ? 1 : | dependencies[folder1].indexOf(g_Mods[folder2].name) != -1 ? 1 : | ||||
dependencies[folder2].indexOf(g_Mods[folder1].name) != -1 ? -1 : 0); | dependencies[folder2].indexOf(g_Mods[folder1].name) != -1 ? -1 : 0); | ||||
displayModList("modsEnabledList", g_ModsEnabled); | displayModList("modsEnabledList", g_ModsEnabled); | ||||
} | } | ||||
Show All 9 Lines |
Wildfire Games · Phabricator