|
|
- import { registerEffectIconHooks } from './effectIconHooks.js';
- import { registerArtSelectButtonHooks } from './artSelectButtonHooks.js';
- import { registerOverlayHooks } from './overlayHooks.js';
- import { registerEffectMappingHooks } from './effectMappingHooks.js';
- import { registerHUDHooks } from './hudHooks.js';
- import { registerUserMappingHooks } from './userMappingHooks.js';
- import { registerWildcardHooks } from './wildcardHooks.js';
- import { registerPopRandomizeHooks } from './popUpRandomizeHooks.js';
- import { TVA_CONFIG } from '../settings.js';
-
- export const REGISTERED_HOOKS = {};
-
- export function registerHook(feature_id, name, fn, { once = false } = {}) {
- if (!(feature_id in REGISTERED_HOOKS)) REGISTERED_HOOKS[feature_id] = {};
- if (name in REGISTERED_HOOKS[feature_id]) return;
- if (TVA_CONFIG.debug) console.info(`TVA | Registering Hook`, { feature_id, name, fn, once });
- const num = Hooks.on(name, fn, { once });
- REGISTERED_HOOKS[feature_id][name] = num;
- }
-
- export function unregisterHook(feature_id, name) {
- if (feature_id in REGISTERED_HOOKS && name in REGISTERED_HOOKS[feature_id]) {
- if (TVA_CONFIG.debug)
- console.info(`TVA | Un-Registering Hook`, {
- feature_id,
- name,
- id: REGISTERED_HOOKS[feature_id][name],
- });
- Hooks.off(name, REGISTERED_HOOKS[feature_id][name]);
- delete REGISTERED_HOOKS[feature_id][name];
- }
- }
-
- export function registerAllHooks() {
- // Hide effect icons
- registerEffectIconHooks();
- // Display overlays
- registerOverlayHooks();
- // Insert Art Select buttons and contextmenu listeners
- registerArtSelectButtonHooks();
- // Effect Mapping related listening for state changes and applying configurations
- registerEffectMappingHooks();
- // Display HUD buttons for Tokens and Tiles
- registerHUDHooks();
- // Default Wildcard image controls
- registerWildcardHooks();
- // User to Image mappings for Tile and Tokens
- registerUserMappingHooks();
- // Handle pop-ups and randomization on token/actor create
- registerPopRandomizeHooks();
- }
|