Improve compendium visibility settings

Related to #9.
master
Matheus Clemente 2024-03-04 17:19:20 -03:00
parent d02e5eec4e
commit 3380e77344
2 changed files with 24 additions and 8 deletions

View File

@ -56,7 +56,8 @@ class CompendiumBrowser extends Application {
} }
get settings() { get settings() {
return game.settings.get(COMPENDIUM_BROWSER, "settings"); const settings = game.settings.get(COMPENDIUM_BROWSER, "settings");
return foundry.utils.mergeObject(game.compendiumBrowser.readCompendiums, settings);
} }
/** @override */ /** @override */
@ -219,17 +220,32 @@ class CompendiumBrowser extends Application {
} }
// settings // settings
html.find(".settings input").on("change", (ev) => { html.find(".settings input").on("change", async (ev) => {
const setting = ev.target.dataset.setting; const setting = ev.target.dataset.setting;
const value = ev.target.checked; const value = ev.target.checked;
if (setting === "spell-compendium-setting") { if (setting === "spell-compendium-setting") {
const key = ev.target.dataset.key; const key = ev.target.dataset.key;
this.settings.loadedSpellCompendium[key].load = value; const settings = foundry.utils.mergeObject(this.settings, {
loadedSpellCompendium: {
[key]: {
load: value
}
}
});
await game.settings.set("compendium-browser", "settings", settings);
// this.settings.loadedSpellCompendium[key].load = value;
this.render(); this.render();
ui.notifications.info("Settings Saved. Item Compendiums are being reloaded."); ui.notifications.info("Settings Saved. Item Compendiums are being reloaded.");
} else if (setting === "npc-compendium-setting") { } else if (setting === "npc-compendium-setting") {
const key = ev.target.dataset.key; const key = ev.target.dataset.key;
this.settings.loadedNpcCompendium[key].load = value; const settings = foundry.utils.mergeObject(this.settings, {
loadedNpcCompendium: {
[key]: {
load: value
}
}
});
await game.settings.set("compendium-browser", "settings", settings);
this.render(); this.render();
ui.notifications.info("Settings Saved. NPC Compendiums are being reloaded."); ui.notifications.info("Settings Saved. NPC Compendiums are being reloaded.");
} else if (setting === "allow-spell-browser") { } else if (setting === "allow-spell-browser") {

View File

@ -4,19 +4,19 @@
export function registerSettings() { export function registerSettings() {
// Register any custom module settings here // Register any custom module settings here
const defaultSettings = { game.compendiumBrowser.readCompendiums = {
loadedSpellCompendium: {}, loadedSpellCompendium: {},
loadedNpcCompendium: {}, loadedNpcCompendium: {},
}; };
for (const compendium of game.packs) { for (const compendium of game.packs) {
if (compendium.documentName === "Item") { if (compendium.documentName === "Item") {
defaultSettings.loadedSpellCompendium[compendium.collection] = { game.compendiumBrowser.readCompendiums.loadedSpellCompendium[compendium.collection] = {
load: true, load: true,
name: `${compendium.metadata.label} (${compendium.collection})`, name: `${compendium.metadata.label} (${compendium.collection})`,
}; };
} }
if (compendium.documentName === "Actor") { if (compendium.documentName === "Actor") {
defaultSettings.loadedNpcCompendium[compendium.collection] = { game.compendiumBrowser.readCompendiums.loadedNpcCompendium[compendium.collection] = {
load: true, load: true,
name: `${compendium.metadata.label} (${compendium.collection})`, name: `${compendium.metadata.label} (${compendium.collection})`,
}; };
@ -26,7 +26,7 @@ export function registerSettings() {
game.settings.register("compendium-browser", "settings", { game.settings.register("compendium-browser", "settings", {
name: "Compendium Browser Settings", name: "Compendium Browser Settings",
hint: "Settings to exclude packs from loading and visibility of the browser", hint: "Settings to exclude packs from loading and visibility of the browser",
default: defaultSettings, default: game.compendiumBrowser.readCompendiums,
type: Object, type: Object,
scope: "world" scope: "world"
}); });