Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/mod/gui/modmod/modmod.js
Show First 20 Lines • Show All 66 Lines • ▼ Show 20 Lines | var g_FakeMod = { | ||||
"name": translate("This mod does not exist"), | "name": translate("This mod does not exist"), | ||||
"version": "", | "version": "", | ||||
"label": "", | "label": "", | ||||
"url": "", | "url": "", | ||||
"description": "", | "description": "", | ||||
"dependencies": [] | "dependencies": [] | ||||
}; | }; | ||||
/** | |||||
* Translate "public" mod description from the box | |||||
*/ | |||||
var g_translatableStrings = [ | |||||
markForTranslation("0 A.D. Empires Ascendant"), | |||||
markForTranslation("A free, open-source, historical RTS game.") | |||||
]; | |||||
var g_ColorNoModSelected = "255 255 100"; | var g_ColorNoModSelected = "255 255 100"; | ||||
var g_ColorDependenciesMet = "100 255 100"; | var g_ColorDependenciesMet = "100 255 100"; | ||||
var g_ColorDependenciesNotMet = "255 100 100"; | var g_ColorDependenciesNotMet = "255 100 100"; | ||||
function init(data, hotloadData) | function init(data, hotloadData) | ||||
{ | { | ||||
g_InstalledMods = data && data.installedMods || hotloadData && hotloadData.installedMods || []; | g_InstalledMods = data && data.installedMods || hotloadData && hotloadData.installedMods || []; | ||||
g_HasFailedMods = Engine.HasFailedMods(); | g_HasFailedMods = Engine.HasFailedMods(); | ||||
Show All 19 Lines | |||||
} | } | ||||
function loadMods() | function loadMods() | ||||
{ | { | ||||
g_Mods = Engine.GetAvailableMods(); | g_Mods = Engine.GetAvailableMods(); | ||||
deepfreeze(g_Mods); | deepfreeze(g_Mods); | ||||
} | } | ||||
function getModInfo(folder, type) | |||||
{ | |||||
if (g_translatableStrings.indexOf(getMod(folder)[type]) != -1) | |||||
return translate(getMod(folder)[type]); | |||||
return getMod(folder)[type]; | |||||
} | |||||
/** | /** | ||||
* Return fake mod for mods which do not exist | * Return fake mod for mods which do not exist | ||||
*/ | */ | ||||
function getMod(folder) | function getMod(folder) | ||||
{ | { | ||||
return !!g_Mods[folder] ? g_Mods[folder] : g_FakeMod; | return !!g_Mods[folder] ? g_Mods[folder] : g_FakeMod; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 68 Lines • ▼ Show 20 Lines | function displayModList(listObjectName, folders, enabled) | ||||
folders = folders.filter(filterMod); | folders = folders.filter(filterMod); | ||||
if (!enabled && Engine.GetGUIObjectByName("modCompatibleFilter").checked) | if (!enabled && Engine.GetGUIObjectByName("modCompatibleFilter").checked) | ||||
folders = folders.filter(folder => g_ModsCompatibility[folder]); | folders = folders.filter(folder => g_ModsCompatibility[folder]); | ||||
let selected = listObject.selected !== -1 ? listObject.list_name[listObject.selected] : null; | let selected = listObject.selected !== -1 ? listObject.list_name[listObject.selected] : null; | ||||
listObject.list_name = folders.map(folder => colorMod(folder, getMod(folder).name, enabled)); | listObject.list_name = folders.map(folder => colorMod(folder, getMod(folder).name, enabled)); | ||||
listObject.list_folder = folders.map(folder => colorMod(folder, folder, enabled)); | listObject.list_folder = folders.map(folder => colorMod(folder, folder, enabled)); | ||||
listObject.list_label = folders.map(folder => colorMod(folder, getMod(folder).label, enabled)); | listObject.list_label = folders.map(folder => colorMod(folder, getModInfo(folder, "label"), enabled)); | ||||
listObject.list_url = folders.map(folder => colorMod(folder, getMod(folder).url || "", enabled)); | listObject.list_url = folders.map(folder => colorMod(folder, getMod(folder).url || "", enabled)); | ||||
listObject.list_version = folders.map(folder => colorMod(folder, getMod(folder).version, enabled)); | listObject.list_version = folders.map(folder => colorMod(folder, getMod(folder).version, enabled)); | ||||
listObject.list_dependencies = folders.map(folder => colorMod(folder, getMod(folder).dependencies.join(" "), enabled)); | listObject.list_dependencies = folders.map(folder => colorMod(folder, getMod(folder).dependencies.join(" "), enabled)); | ||||
listObject.list = folders; | listObject.list = folders; | ||||
listObject.selected = selected ? listObject.list_name.indexOf(selected) : -1; | listObject.selected = selected ? listObject.list_name.indexOf(selected) : -1; | ||||
return folders; | return folders; | ||||
▲ Show 20 Lines • Show All 244 Lines • ▼ Show 20 Lines | toggleModButton.caption = isPickedDisabledList ? | ||||
translateWithContext("mod activation", "Enable") : | translateWithContext("mod activation", "Enable") : | ||||
translateWithContext("mod activation", "Disable"); | translateWithContext("mod activation", "Disable"); | ||||
toggleModButton.enabled = isPickedDisabledList ? isModSelected && g_ModsCompatibility[listObject.list[listObject.selected]] : isModSelected; | toggleModButton.enabled = isPickedDisabledList ? isModSelected && g_ModsCompatibility[listObject.list[listObject.selected]] : isModSelected; | ||||
Engine.GetGUIObjectByName("enabledModUp").enabled = isModSelected && listObjectName == "modsEnabledList" && !areFilters(); | Engine.GetGUIObjectByName("enabledModUp").enabled = isModSelected && listObjectName == "modsEnabledList" && !areFilters(); | ||||
Engine.GetGUIObjectByName("enabledModDown").enabled = isModSelected && listObjectName == "modsEnabledList" && !areFilters(); | Engine.GetGUIObjectByName("enabledModDown").enabled = isModSelected && listObjectName == "modsEnabledList" && !areFilters(); | ||||
Engine.GetGUIObjectByName("globalModDescription").caption = | Engine.GetGUIObjectByName("globalModDescription").caption = | ||||
listObject.list[listObject.selected] ? | listObject.list[listObject.selected] ? | ||||
getMod(listObject.list[listObject.selected]).description : | getModInfo(listObject.list[listObject.selected], "description") : | ||||
'[color="' + g_ColorNoModSelected + '"]' + translate("No mod has been selected.") + '[/color]'; | '[color="' + g_ColorNoModSelected + '"]' + translate("No mod has been selected.") + '[/color]'; | ||||
if (!g_ModsEnabled.length) | if (!g_ModsEnabled.length) | ||||
{ | { | ||||
if (!Engine.GetGUIObjectByName("startButton").hidden) | if (!Engine.GetGUIObjectByName("startButton").hidden) | ||||
Engine.GetGUIObjectByName("message").caption = coloredText(translate('Enable at least 0ad mod and save configuration'), g_ColorDependenciesNotMet); | Engine.GetGUIObjectByName("message").caption = coloredText(translate('Enable at least 0ad mod and save configuration'), g_ColorDependenciesNotMet); | ||||
else | else | ||||
Engine.GetGUIObjectByName("message").caption = coloredText(translate('Enable at least 0ad mod'), g_ColorDependenciesNotMet); | Engine.GetGUIObjectByName("message").caption = coloredText(translate('Enable at least 0ad mod'), g_ColorDependenciesNotMet); | ||||
Show All 32 Lines |
Wildfire Games · Phabricator