Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/mod/gui/modmod/modmod.js
Show First 20 Lines • Show All 47 Lines • ▼ Show 20 Lines | |||||
var g_ModsEnabled = []; | var g_ModsEnabled = []; | ||||
var g_ModsDisabled = []; | var g_ModsDisabled = []; | ||||
/** | /** | ||||
* Name of the mods installed by the ModInstaller. | * Name of the mods installed by the ModInstaller. | ||||
*/ | */ | ||||
var g_InstalledMods; | var g_InstalledMods; | ||||
var g_ColorNoModSelected = "255 255 100"; | var g_NoModSelectedTextTags = { "color": "255 255 100" }; | ||||
var g_ColorDependenciesMet = "100 255 100"; | var g_DependenciesMetTextTags = { "color": "100 255 100" }; | ||||
var g_ColorDependenciesNotMet = "255 100 100"; | var g_DependenciesNotMetTextTags = { "color": "255 100 100" }; | ||||
var g_ModInstalledTextTags = { "color": "green" }; | |||||
elexis: Plural, each property is a tag. (Proof would be `struct Tag` in `CGUIString.h`) | |||||
function init(data, hotloadData) | function init(data, hotloadData) | ||||
{ | { | ||||
g_InstalledMods = data && data.installedMods || hotloadData && hotloadData.installedMods || []; | g_InstalledMods = data && data.installedMods || hotloadData && hotloadData.installedMods || []; | ||||
initMods(); | initMods(); | ||||
initGUIButtons(data); | initGUIButtons(data); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 74 Lines • ▼ Show 20 Lines | if (listObjectName == "modsDisabledList") | ||||
let sortFolder = folder => String(g_Mods[folder][listObject.selected_column] || folder); | let sortFolder = folder => String(g_Mods[folder][listObject.selected_column] || folder); | ||||
folders.sort((folder1, folder2) => | folders.sort((folder1, folder2) => | ||||
listObject.selected_column_order * | listObject.selected_column_order * | ||||
sortFolder(folder1).localeCompare(sortFolder(folder2))); | sortFolder(folder1).localeCompare(sortFolder(folder2))); | ||||
} | } | ||||
folders = folders.filter(filterMod); | folders = folders.filter(filterMod); | ||||
listObject.list_name = folders.map(folder => g_Mods[folder].name).map(name => g_InstalledMods.indexOf(name) == -1 ? name : coloredText(name, "green")); | listObject.list_name = folders.map(folder => g_Mods[folder].name).map(name => g_InstalledMods.indexOf(name) == -1 ? name : setStringTags(name, g_ModInstalledTextTags)); | ||||
Done Inline ActionsSame - but this one can become a global elexis: Same - but this one can become a global | |||||
listObject.list_folder = folders; | listObject.list_folder = folders; | ||||
listObject.list_label = folders.map(folder => g_Mods[folder].label); | listObject.list_label = folders.map(folder => g_Mods[folder].label); | ||||
listObject.list_url = folders.map(folder => g_Mods[folder].url || ""); | listObject.list_url = folders.map(folder => g_Mods[folder].url || ""); | ||||
listObject.list_version = folders.map(folder => g_Mods[folder].version); | listObject.list_version = folders.map(folder => g_Mods[folder].version); | ||||
listObject.list_dependencies = folders.map(folder => g_Mods[folder].dependencies.join(" ")); | listObject.list_dependencies = folders.map(folder => g_Mods[folder].dependencies.join(" ")); | ||||
listObject.list = folders; | listObject.list = folders; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 119 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
let guiObject = Engine.GetGUIObjectByName("message"); | let guiObject = Engine.GetGUIObjectByName("message"); | ||||
for (let dependency of g_Mods[folder].dependencies) | for (let dependency of g_Mods[folder].dependencies) | ||||
{ | { | ||||
if (isDependencyMet(dependency)) | if (isDependencyMet(dependency)) | ||||
continue; | continue; | ||||
guiObject.caption = coloredText( | guiObject.caption = setStringTags( | ||||
sprintf(translate('Dependency not met: %(dep)s'), { "dep": dependency }), | sprintf(translate('Dependency not met: %(dep)s'), { "dep": dependency }), | ||||
g_ColorDependenciesNotMet); | g_DependenciesNotMetTextTags); | ||||
return false; | return false; | ||||
} | } | ||||
guiObject.caption = coloredText(translate('All dependencies met'), g_ColorDependenciesMet); | guiObject.caption = setStringTags(translate('All dependencies met'), g_DependenciesMetTextTags); | ||||
return true; | return true; | ||||
} | } | ||||
/** | /** | ||||
* @param dependency is a mod name or a mod version comparison. | * @param dependency is a mod name or a mod version comparison. | ||||
*/ | */ | ||||
function isDependencyMet(dependency) | function isDependencyMet(dependency) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 71 Lines • ▼ Show 20 Lines | if (listObject.selected != -1) | ||||
toggleModButton.onPress = listObjectName == "modsDisabledList" ? enableMod : disableMod; | toggleModButton.onPress = listObjectName == "modsDisabledList" ? enableMod : disableMod; | ||||
Engine.GetGUIObjectByName("enabledModUp").enabled = listObjectName == "modsEnabledList"; | Engine.GetGUIObjectByName("enabledModUp").enabled = listObjectName == "modsEnabledList"; | ||||
Engine.GetGUIObjectByName("enabledModDown").enabled = listObjectName == "modsEnabledList"; | Engine.GetGUIObjectByName("enabledModDown").enabled = listObjectName == "modsEnabledList"; | ||||
} | } | ||||
Engine.GetGUIObjectByName("globalModDescription").caption = | Engine.GetGUIObjectByName("globalModDescription").caption = | ||||
listObject.list[listObject.selected] ? | listObject.list[listObject.selected] ? | ||||
g_Mods[listObject.list[listObject.selected]].description : | g_Mods[listObject.list[listObject.selected]].description : | ||||
'[color="' + g_ColorNoModSelected + '"]' + translate("No mod has been selected.") + '[/color]'; | setStringTags(translate("No mod has been selected."), g_NoModSelectedTextTags); | ||||
} | } | ||||
function visitModWebsite() | function visitModWebsite() | ||||
{ | { | ||||
let modsEnabledList = Engine.GetGUIObjectByName("modsEnabledList"); | let modsEnabledList = Engine.GetGUIObjectByName("modsEnabledList"); | ||||
let modsDisabledList = Engine.GetGUIObjectByName("modsDisabledList"); | let modsDisabledList = Engine.GetGUIObjectByName("modsDisabledList"); | ||||
let list = modsEnabledList.selected == -1 ? modsDisabledList : modsEnabledList; | let list = modsEnabledList.selected == -1 ? modsDisabledList : modsEnabledList; | ||||
Show All 11 Lines |
Wildfire Games · Phabricator
Plural, each property is a tag. (Proof would be struct Tag in CGUIString.h)