Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/binaries/data/mods/mod/gui/modmod/modmod.js
Show First 20 Lines • Show All 109 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
function initGUIButtons(data) | function initGUIButtons(data) | ||||
{ | { | ||||
// Either get back to the previous page or quit if there is no previous page | // Either get back to the previous page or quit if there is no previous page | ||||
let cancelButton = !data || data.cancelbutton; | let cancelButton = !data || data.cancelbutton; | ||||
Engine.GetGUIObjectByName("cancelButton").hidden = !cancelButton; | Engine.GetGUIObjectByName("cancelButton").hidden = !cancelButton; | ||||
Engine.GetGUIObjectByName("quitButton").hidden = cancelButton; | Engine.GetGUIObjectByName("quitButton").hidden = cancelButton; | ||||
Engine.GetGUIObjectByName("toggleModButton").caption = translateWithContext("mod activation", "Enable"); | |||||
} | } | ||||
function saveMods() | function saveMods() | ||||
{ | { | ||||
sortEnabledMods(); | sortEnabledMods(); | ||||
Engine.ConfigDB_CreateValue("user", "mod.enabledmods", ["mod"].concat(g_ModsEnabled).join(" ")); | Engine.ConfigDB_CreateValue("user", "mod.enabledmods", ["mod"].concat(g_ModsEnabled).join(" ")); | ||||
Engine.ConfigDB_WriteFile("user", "config/user.cfg"); | Engine.ConfigDB_WriteFile("user", "config/user.cfg"); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 250 Lines • ▼ Show 20 Lines | |||||
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(g_RegExpComparisonOperator)[0]); | dependencies[folder] = g_Mods[folder].dependencies.map(d => d.split(g_RegExpComparisonOperator)[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); | ||||
g_ModsEnabledFiltered = displayModList("modsEnabledList", g_ModsEnabled); | g_ModsEnabledFiltered = displayModList("modsEnabledList", g_ModsEnabled); | ||||
} | } | ||||
function selectedMod(listObjectName) | function selectedMod(listObjectName) | ||||
{ | { | ||||
let listObject = Engine.GetGUIObjectByName(listObjectName); | let listObject = Engine.GetGUIObjectByName(listObjectName); | ||||
let otherListObject = Engine.GetGUIObjectByName(listObjectName == "modsDisabledList" ? | let otherListObject = Engine.GetGUIObjectByName(listObjectName == "modsDisabledList" ? | ||||
"modsEnabledList" : "modsDisabledList"); | "modsEnabledList" : "modsDisabledList"); | ||||
if (listObject.selected != -1) | let toggleModButton = Engine.GetGUIObjectByName("toggleModButton"); | ||||
let modSelected = listObject.selected != -1; | |||||
if (modSelected) | |||||
{ | { | ||||
otherListObject.selected = -1; | otherListObject.selected = -1; | ||||
Engine.GetGUIObjectByName("visitWebButton").enabled = true; | |||||
let toggleModButton = Engine.GetGUIObjectByName("toggleModButton"); | |||||
toggleModButton.caption = listObjectName == "modsDisabledList" ? translate("Enable") : translate("Disable"); | |||||
toggleModButton.enabled = true; | |||||
toggleModButton.onPress = listObjectName == "modsDisabledList" ? enableMod : disableMod; | toggleModButton.onPress = listObjectName == "modsDisabledList" ? enableMod : disableMod; | ||||
Engine.GetGUIObjectByName("enabledModUp").enabled = listObjectName == "modsEnabledList" && !areFilters(); | |||||
Engine.GetGUIObjectByName("enabledModDown").enabled = listObjectName == "modsEnabledList" && !areFilters(); | |||||
} | } | ||||
Engine.GetGUIObjectByName("visitWebButton").enabled = modSelected && !!getSelectedModUrl(); | |||||
toggleModButton.caption = listObjectName == "modsDisabledList" ? | |||||
translateWithContext("mod activation", "Enable") : | |||||
translateWithContext("mod activation", "Disable"); | |||||
toggleModButton.enabled = modSelected; | |||||
Engine.GetGUIObjectByName("enabledModUp").enabled = modSelected && listObjectName == "modsEnabledList" && !areFilters(); | |||||
Engine.GetGUIObjectByName("enabledModDown").enabled = modSelected && listObjectName == "modsEnabledList" && !areFilters(); | |||||
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]'; | '[color="' + g_ColorNoModSelected + '"]' + translate("No mod has been selected.") + '[/color]'; | ||||
} | } | ||||
function visitModWebsite() | /** | ||||
* @returns {string} The url of the currently selected mod. | |||||
*/ | |||||
function getSelectedModUrl() | |||||
{ | { | ||||
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; | ||||
let folder = list.list_folder[list.selected]; | let folder = list.list_folder[list.selected]; | ||||
let url = folder && g_Mods[folder] && g_Mods[folder].url; | return folder && g_Mods[folder] && g_Mods[folder].url || undefined; | ||||
} | |||||
function visitModWebsite() | |||||
{ | |||||
let url = getSelectedModUrl(); | |||||
if (!url) | if (!url) | ||||
return; | return; | ||||
if (!url.startsWith("http://") && !url.startsWith("https://")) | if (!url.startsWith("http://") && !url.startsWith("https://")) | ||||
url = "http://" + url; | url = "http://" + url; | ||||
openURL(url); | openURL(url); | ||||
} | } |
Wildfire Games · Phabricator