diff --git a/module/hooks/init.mjs b/module/hooks/init.mjs index 4d9e1cf..03f4c17 100644 --- a/module/hooks/init.mjs +++ b/module/hooks/init.mjs @@ -1,9 +1,31 @@ +// Applications +import { HeroSummaryCardV1 } from "../Apps/ActorSheets/HeroSummaryCardV1.mjs"; + +// Data Models import { HeroData } from "../data/Actor/Hero.mjs"; +import { registerDevSettings } from "../settings/devSettings.mjs"; + +// Misc import { Logger } from "../utils/Logger.mjs"; Hooks.once(`init`, () => { Logger.log(`Initializing`); - // Datamodel registrations + // #region Settings + registerDevSettings(); + // #endregion + + // #region Datamodels CONFIG.Actor.dataModels.hero = HeroData; + // #endregion + + // #region Sheets + // #region Actors + Actors.registerSheet(game.system.id, HeroSummaryCardV1, { + makeDefault: true, + types: [`hero`], + label: `RipCrypt.sheet-names.HeroSummaryCardV1`, + }); + // #endregion + // #endregion }); diff --git a/module/hooks/ready.mjs b/module/hooks/ready.mjs index dbea1e1..e367c81 100644 --- a/module/hooks/ready.mjs +++ b/module/hooks/ready.mjs @@ -2,4 +2,18 @@ import { Logger } from "../utils/Logger.mjs"; Hooks.once(`ready`, () => { Logger.log(`Ready`); + + let defaultTab = game.settings.get(`ripcrypt`, `defaultTab`); + if (defaultTab) { + if (!ui.sidebar?.tabs?.[defaultTab]) { + Logger.error(`Couldn't find a sidebar tab with ID:`, defaultTab); + } else { + Logger.debug(`Switching sidebar tab to:`, defaultTab); + ui.sidebar.tabs[defaultTab].activate(); + }; + }; + + if (game.settings.get(`ripcrypt`, `devMode`)) { + if (game.paused) { game.togglePause() }; + }; }); diff --git a/module/settings/devSettings.mjs b/module/settings/devSettings.mjs new file mode 100644 index 0000000..69767d9 --- /dev/null +++ b/module/settings/devSettings.mjs @@ -0,0 +1,17 @@ +export function registerDevSettings() { + game.settings.register(`ripcrypt`, `devMode`, { + scope: `client`, + type: Boolean, + config: false, + default: false, + requiresReload: false, + }); + + game.settings.register(`ripcrypt`, `defaultTab`, { + name: `Default Tab`, + scope: `client`, + type: String, + config: game.settings.get(`ripcrypt`, `devMode`), + requiresReload: false, + }); +};