dh-improved-countdowns/scripts/module.js

52 lines
1.6 KiB
JavaScript

import { CountdownTrackerApp } from './countdown-app.js';
Hooks.once('init', () => {
// Register settings for position, locked state, and minimized state
game.settings.register("dh-improved-countdowns", "position", {
name: "Tracker Position",
scope: "client",
config: false,
type: Object,
default: { top: 100, left: 100 }
});
game.settings.register("dh-improved-countdowns", "locked", {
name: "Lock Tracker Position",
hint: "Prevents the countdown tracker from being dragged.",
scope: "client",
config: true,
type: Boolean,
default: false,
onChange: () => CountdownTrackerApp.instance?.render()
});
game.settings.register("dh-improved-countdowns", "minimized", {
name: "Minimized View",
scope: "client",
config: false,
type: Boolean,
default: false,
onChange: () => CountdownTrackerApp.instance?.render()
});
});
Hooks.once('ready', () => {
// Hide default countdown tracker via CSS (handled in countdown.css)
// Initialize our improved tracker
CountdownTrackerApp.initialize();
});
// Re-render when countdowns change in the system
Hooks.on('daggerheart.refresh', (data) => {
if (data.refreshType === "countdown" || data.refreshType === 4) { // 4 is RefreshType.Countdown in Daggerheart
CountdownTrackerApp.instance?.render();
}
});
// Generic socket refresh if system refresh doesn't catch everything
Hooks.on('refresh', (data) => {
if (data.refreshType === "countdown") {
CountdownTrackerApp.instance?.render();
}
});