diff --git a/langs/en-ca.json b/langs/en-ca.json index fc4f428..a182d15 100644 --- a/langs/en-ca.json +++ b/langs/en-ca.json @@ -46,6 +46,11 @@ "name": "Developer Settings", "hint": "Tweaks that are relevant if you are developing something within Foundry, but are rarely useful outside of that context.", "label": "Configure Dev Settings" + }, + "hotbarSettings": { + "name": "Hotbar Settings", + "hint": "Tweaks that modify Foundry's hotbar", + "label": "Configure Hotbar" } }, "apps": { diff --git a/module/apps/HotbarSettingsMenu.mjs b/module/apps/HotbarSettingsMenu.mjs new file mode 100644 index 0000000..0c7fb9e --- /dev/null +++ b/module/apps/HotbarSettingsMenu.mjs @@ -0,0 +1,21 @@ +import { categories } from "../utils/SubMenuSettings.mjs"; +import { OFTSettingsMenu } from "./OFTSettingsMenu.mjs"; + +export class HotbarSettingsMenu extends OFTSettingsMenu { + static DEFAULT_OPTIONS = { + window: { + title: `OFT.menu.hotbarSettings.name`, + }, + }; + + static get _SETTINGS() { + const settings = categories.get(`hotbar`); + const settingIDs = []; + for (const [settingID, shown] of settings.entries()) { + if (shown) { + settingIDs.push(settingID); + }; + }; + return settingIDs; + }; +}; diff --git a/module/oft.mjs b/module/oft.mjs index 5765c9d..eec822e 100644 --- a/module/oft.mjs +++ b/module/oft.mjs @@ -17,6 +17,7 @@ import { DevSettingsMenu } from "./apps/DevSettingsMenu.mjs"; // Misc import { __ID__ } from "./consts.mjs"; +import { HotbarSettingsMenu } from "./apps/HotbarSettingsMenu.mjs"; Hooks.on(`setup`, () => { @@ -30,11 +31,19 @@ Hooks.on(`setup`, () => { addGlobalDocReferrer(); autoUnpauseOnLoad(); - chatSidebarBackground(); - startSidebarExpanded(); - startingSidebarTab(); + game.settings.registerMenu(__ID__, `hotbarSettings`, { + name: `OFT.menu.hotbarSettings.name`, + hint: `OFT.menu.hotbarSettings.hint`, + label: `OFT.menu.hotbarSettings.label`, + restricted: false, + type: HotbarSettingsMenu, + }); hotbarButtonSize(); hotbarButtonGap(); repositionHotbar(); + + chatSidebarBackground(); + startSidebarExpanded(); + startingSidebarTab(); preventUserConfigOpen(); }); diff --git a/module/settings/hotbarButtonGap.mjs b/module/settings/hotbarButtonGap.mjs index e381508..1ec2648 100644 --- a/module/settings/hotbarButtonGap.mjs +++ b/module/settings/hotbarButtonGap.mjs @@ -1,5 +1,6 @@ import { __ID__ } from "../consts.mjs"; import { Logger } from "../utils/Logger.mjs"; +import { registerCategorySetting } from "../utils/SubMenuSettings.mjs"; const key = `hotbarButtonGap`; @@ -14,7 +15,7 @@ export function hotbarButtonGap() { // #region Registration Logger.log(`Registering setting: ${key}`); document.body.classList.add(`${__ID__}-${key}`); - game.settings.register(__ID__, key, { + registerCategorySetting(`hotbar`, __ID__, key, { name: `OFT.setting.${key}.name`, hint: `OFT.setting.${key}.hint`, scope: `user`, diff --git a/module/settings/hotbarButtonSize.mjs b/module/settings/hotbarButtonSize.mjs index 6bd1bba..c960c66 100644 --- a/module/settings/hotbarButtonSize.mjs +++ b/module/settings/hotbarButtonSize.mjs @@ -1,5 +1,6 @@ import { __ID__ } from "../consts.mjs"; import { Logger } from "../utils/Logger.mjs"; +import { registerCategorySetting } from "../utils/SubMenuSettings.mjs"; const key = `hotbarButtonSize`; @@ -14,7 +15,7 @@ export function hotbarButtonSize() { // #region Registration Logger.log(`Registering setting: ${key}`); document.body.classList.add(`${__ID__}-${key}`); - game.settings.register(__ID__, key, { + registerCategorySetting(`hotbar`, __ID__, key, { name: `OFT.setting.${key}.name`, hint: `OFT.setting.${key}.hint`, scope: `user`, diff --git a/module/settings/repositionHotbar.mjs b/module/settings/repositionHotbar.mjs index 601e580..f85f3ed 100644 --- a/module/settings/repositionHotbar.mjs +++ b/module/settings/repositionHotbar.mjs @@ -1,5 +1,6 @@ import { __ID__ } from "../consts.mjs"; import { Logger } from "../utils/Logger.mjs"; +import { registerCategorySetting } from "../utils/SubMenuSettings.mjs"; const key = `repositionHotbar`; @@ -13,7 +14,7 @@ export function repositionHotbar() { // #region Registration Logger.log(`Registering setting: ${key}`); - game.settings.register(__ID__, key, { + registerCategorySetting(`hotbar`, __ID__, key, { name: `OFT.setting.${key}.name`, hint: `OFT.setting.${key}.hint`, scope: `user`,