Skip to content

Commit

Permalink
initial support for multiple mods in mods list
Browse files Browse the repository at this point in the history
  • Loading branch information
0neGal committed Jan 2, 2025
1 parent 291a781 commit 579ccb8
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 19 deletions.
25 changes: 16 additions & 9 deletions src/app/js/mods.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ mods.load = (mods_obj) => {
name = mod.package.package_name;
}

let normalized_name = "mod-list-" + mods.normalize(name);
let normalized_name =
mod.version + "-mod-list-" + mods.normalize(name)

normalized_names.push(normalized_name);

Expand Down Expand Up @@ -97,11 +98,14 @@ mods.load = (mods_obj) => {

div.querySelector(".remove").onclick = () => {
if (! mod.package) {
return mods.remove(mod.name);
return mods.remove(mod.name, mod.version);
}

for (let i = 0; i < mod.packaged_mods.length; i++) {
mods.remove(mod.packaged_mods[i]);
for (let i in mod.packaged_mods) {
mods.remove(
mod.packaged_mods[i].name,
mod.packaged_mods[i].version
)
}
}

Expand All @@ -111,11 +115,14 @@ mods.load = (mods_obj) => {

div.querySelector(".switch").addEventListener("click", () => {
if (! mod.package) {
return mods.toggle(mod.name);
return mods.toggle(mod.name, mod.version);
}

for (let i = 0; i < mod.packaged_mods.length; i++) {
mods.toggle(mod.packaged_mods[i]);
for (let i in mod.packaged_mods) {
mods.toggle(
mod.packaged_mods[i].name,
mod.packaged_mods[i].version
)
}
})

Expand All @@ -142,7 +149,7 @@ mods.load = (mods_obj) => {
}

for (let i = 0; i < mod_els.length; i++) {
let mod = mod_els[i].id.replace(/^mod-list-/, "");
let mod = mod_els[i].id.replace(/.*mod-list-/, "");

if (! normalized_names.includes(mod_els[i].id)) {
mod_els[i].remove();
Expand Down Expand Up @@ -254,7 +261,7 @@ mods.remove = (mod) => {
ipcRenderer.send("remove-mod", mod);
}

mods.toggle = (mod) => {
mods.toggle = (mod, version) => {
// is this a core mod?
if (mod.toLowerCase().match(/^northstar\./)) {
// keep track of whether this mod is disabled
Expand Down
25 changes: 15 additions & 10 deletions src/modules/mods.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ var mods = {
dupe_msg_sent: false,
}

ipcMain.on("remove-mod", (_, mod) => {
mods.remove(mod);
ipcMain.on("remove-mod", (_, mod, mod_version) => {
mods.remove(mod, mod_version);
})

ipcMain.on("toggle-mod", (_, mod, mod_version) => {
Expand Down Expand Up @@ -153,12 +153,16 @@ mods.list = () => {
}

if (obj.package) {
packaged_mods.push(obj.name);
packaged_mods.push({
name: obj.name,
version: obj.version
})

obj.author = obj.package.author;
obj.version = obj.package.version;
}

obj.disabled = ! mods.modfile.get(obj.name);
obj.disabled = ! mods.modfile.get(obj.name, obj.version);

// add manifest data from manifest.json, if it exists
let manifest_file = path.join(dir, file, "manifest.json");
Expand Down Expand Up @@ -193,7 +197,8 @@ mods.list = () => {
let add_packaged_mods = (mods_array) => {
for (let i = 0; i < mods_array.length; i++) {
if (mods_array[i].package.package_name !==
package_obj.package_name) {
package_obj.package_name
|| mods_array[i].version != package_obj.version) {

continue;
}
Expand Down Expand Up @@ -734,7 +739,7 @@ mods.installFromURL = (url, author) => {
//
// takes in the names of the mod then removes it, no confirmation,
// that'd be up to the GUI.
mods.remove = (mod) => {
mods.remove = (mod, mod_version) => {
update_path();

// make sure Northstar is actually installed
Expand All @@ -759,7 +764,7 @@ mods.remove = (mod) => {
return
}

let mod_data = mods.get(mod);
let mod_data = mods.get(mod, mod_version);
let mod_name = mod_data.folder_name;

if (! mod_name) {
Expand Down Expand Up @@ -811,7 +816,7 @@ mods.remove = (mod) => {
// it's disabled. You could have a direct .disable() function if you
// checked for if a mod is already disable and if not run the function.
// However we currently have no need for that.
mods.toggle = (mod, fork) => {
mods.toggle = (mod, mod_version, fork) => {
update_path();

// make sure Northstar is actually installed
Expand Down Expand Up @@ -839,7 +844,7 @@ mods.toggle = (mod, fork) => {
continue;
}

mods.toggle(modlist[i].name, true); // enable mod
mods.toggle(modlist[i].name, mod_version, true); // enable mod
}

console.ok(lang("cli.mods.toggled_all"));
Expand All @@ -848,7 +853,7 @@ mods.toggle = (mod, fork) => {
}

// toggle specific mod
mods.modfile.toggle(mod);
mods.modfile.toggle(mod, mod_version);

if (! fork) {
console.ok(lang("cli.mods.toggled"));
Expand Down

0 comments on commit 579ccb8

Please sign in to comment.