Group all of the hotbar settings into a submenu (closes #15)

This commit is contained in:
Oliver 2025-12-09 19:59:21 -07:00
parent d71997a508
commit 03330973d7
6 changed files with 44 additions and 6 deletions

View file

@ -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": {

View file

@ -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;
};
};

View file

@ -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();
});

View file

@ -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`,

View file

@ -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`,

View file

@ -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`,