|
import { MODULE_NAME, systemSheets } from "./consts.js";
|
|
import { i18n, debug, warn } from "./util.js";
|
|
|
|
Hooks.once("ready", () => {
|
|
if (!game.modules.get("pf2e-dorako-ux")) return;
|
|
if (game.modules.get("pf2e-dorako-ux")?.active) return;
|
|
if (!game.user.isGM) return;
|
|
new Dialog({
|
|
title: "Dorako UX is not active!",
|
|
content: `
|
|
<p>Dorako UI is dependant on the module Dorako UX.</p>
|
|
<p>It's probably already installed, but not enabled.</p>
|
|
<p>Go to Manage Modules and enable it, hit Save Module Settings, and reload.</p>`,
|
|
buttons: {
|
|
OK: {
|
|
label: "OK",
|
|
callback: () => {},
|
|
},
|
|
},
|
|
default: "OK",
|
|
}).render(true);
|
|
});
|
|
|
|
Hooks.once("ready", () => {
|
|
if (!game.modules.get("monks-little-details")?.active) return;
|
|
if (!game.settings.get("monks-little-details", "window-css-changes")) return;
|
|
if (!game.settings.get("pf2e-dorako-ui", "mld-nag")) return;
|
|
if (!game.user.isGM) return;
|
|
new Dialog({
|
|
title: "Dorako UI - Monk's Little Details conflict",
|
|
content: `
|
|
<p>Monk's Little Details has a default-on setting that influences the look of application windows.</p>
|
|
<p>Dorako UI already affects application windows, so it is recommended to disable the setting.</p>
|
|
<p>If you want to make application windows opaque, Dorako UI has a setting for changing all glassy backgrounds.</p>
|
|
<p>Dorako UI can change your settings for you using the following buttons:</p>`,
|
|
buttons: {
|
|
disable: {
|
|
label: "Disable MLD setting",
|
|
callback: () => {
|
|
game.settings.set("monks-little-details", "window-css-changes", false);
|
|
},
|
|
},
|
|
opaque: {
|
|
label: "Disable MLD setting + use Dorako UI opaque app theme",
|
|
callback: () => {
|
|
game.settings.set("monks-little-details", "window-css-changes", false);
|
|
game.settings.set("pf2e-dorako-ui", "theme.app-theme", "opaque");
|
|
},
|
|
},
|
|
"dont-ask": {
|
|
label: "Do nothing, don't ask again",
|
|
callback: () => {
|
|
game.settings.set("pf2e-dorako-ui", "mld-nag", false);
|
|
},
|
|
},
|
|
},
|
|
default: "disable",
|
|
}).render(true);
|
|
});
|
|
|
|
// Hooks.once("ready", () => {
|
|
// if (!game.modules.get("token-action-hud")?.active) return;
|
|
// if (game.settings.get("token-action-hud", "style") === "dorakoUI") return;
|
|
// if (!game.settings.get("pf2e-dorako-ui", "tah-nag")) return; // if nag has been disabled
|
|
// new Dialog({
|
|
// title: "Dorako UI - Token Action HUD style",
|
|
// content: `
|
|
// <p>Token Action HUD ships with a setting that matches the style of Dorako UI.</p>
|
|
// <p>Dorako UI can turn the setting on for you (recommended).</p>`,
|
|
// buttons: {
|
|
// enable: {
|
|
// label: "Enable Dorako UI style",
|
|
// callback: () => {
|
|
// game.settings.set("token-action-hud", "style", "dorakoUI");
|
|
// },
|
|
// },
|
|
// "dont-ask": {
|
|
// label: "Do nothing, don't ask again",
|
|
// callback: () => {
|
|
// game.settings.set("pf2e-dorako-ui", "tah-nag", false);
|
|
// },
|
|
// },
|
|
// },
|
|
// default: "enable",
|
|
// }).render(true);
|
|
// });
|
|
|
|
// Hooks.on("tokenActionHudCoreReady", () => {
|
|
// if (game.settings.get("token-action-hud-core", "style") === "dorakoUI") return;
|
|
// if (!game.settings.get("pf2e-dorako-ui", "tah-nag")) return; // if nag has been disabled
|
|
// new Dialog({
|
|
// title: "Dorako UI - Token Action HUD Core style",
|
|
// content: `
|
|
// <p>Token Action HUD Core ships with a setting that matches the style of Dorako UI.</p>
|
|
// <p>Dorako UI can turn the setting on for you (recommended).</p>`,
|
|
// buttons: {
|
|
// enable: {
|
|
// label: "Enable Dorako UI style",
|
|
// callback: () => {
|
|
// game.settings.set("token-action-hud-core", "style", "dorakoUI");
|
|
// },
|
|
// },
|
|
// "dont-ask": {
|
|
// label: "Do nothing, don't ask again",
|
|
// callback: () => {
|
|
// game.settings.set("pf2e-dorako-ui", "tah-nag", false);
|
|
// },
|
|
// },
|
|
// },
|
|
// default: "enable",
|
|
// }).render(true);
|
|
// });
|
|
|
|
for (const application of ["Application", ...systemSheets]) {
|
|
Hooks.on("render" + application, (app, html, data) => {
|
|
if (!game.settings.get(`${MODULE_NAME}`, "misc.enable-debug-mode")) {
|
|
return;
|
|
}
|
|
let colorSchemeButton = $(
|
|
`<a class="header-button dark-theme-toggle" alt="Toggle dark theme" data-tooltip="Dark theme" data-tooltip-direction="UP"">
|
|
<i class="fas fa-fw fa-moon"></i>
|
|
</a>`
|
|
);
|
|
colorSchemeButton.click((ev) => {
|
|
let colorScheme = html[0].dataset.colorScheme;
|
|
if (colorScheme === "light") {
|
|
html[0].dataset.colorScheme = "dark";
|
|
} else {
|
|
html[0].dataset.colorScheme = "light";
|
|
}
|
|
});
|
|
let foundry2Button = $(
|
|
`<a class="header-button foundry2-toggle" alt="Toggle Foundry2" data-tooltip="Toggle Foundry2" data-tooltip-direction="UP">
|
|
<i class="fa-fw fas fa-f"></i>
|
|
</a>`
|
|
);
|
|
foundry2Button.click((ev) => {
|
|
html[0].dataset.theme = "foundry2";
|
|
});
|
|
let crbButton = $(
|
|
`<a class="header-button crb-toggle" alt="Toggle CRB" data-tooltip="Toggle CRB" data-tooltip-direction="UP">
|
|
<i class="fa-fw fas fa-c"></i>
|
|
</a>`
|
|
);
|
|
crbButton.click((ev) => {
|
|
html[0].dataset.theme = "crb";
|
|
});
|
|
let bg3Button = $(
|
|
`<a class="header-button bg3-toggle" alt="Toggle BG3" data-tooltip="Toggle BG3" data-tooltip-direction="UP">
|
|
<i class="fa-fw fas fa-b"></i>
|
|
</a>`
|
|
);
|
|
bg3Button.click((ev) => {
|
|
html[0].dataset.theme = "bg3";
|
|
});
|
|
let discordButton = $(
|
|
`<a class="header-button discord-toggle" alt="Toggle Discord" data-tooltip="Toggle Discord" data-tooltip-direction="UP">
|
|
<i class="fa-fw fas fa-d"></i>
|
|
</a>`
|
|
);
|
|
discordButton.click((ev) => {
|
|
html[0].dataset.theme = "discord";
|
|
});
|
|
let noThemeButton = $(
|
|
`<a class="header-button no-theme-toggle" alt="No theme" data-tooltip="No theme" data-tooltip-direction="UP">
|
|
<i class="fa-fw fas fa-eraser"></i>
|
|
</a>`
|
|
);
|
|
noThemeButton.click((ev) => {
|
|
delete html[0].dataset.theme;
|
|
delete html[0].dataset.colorScheme;
|
|
});
|
|
html.closest(".app").find(".dark-theme-toggle").remove();
|
|
html.closest(".app").find(".crb-toggle").remove();
|
|
html.closest(".app").find(".foundry2-toggle").remove();
|
|
html.closest(".app").find(".bg3-toggle").remove();
|
|
html.closest(".app").find(".discord-toggle").remove();
|
|
html.closest(".app").find(".no-theme-toggle").remove();
|
|
let titleElement = html.closest(".app").find(".window-title");
|
|
colorSchemeButton.insertAfter(titleElement);
|
|
crbButton.insertAfter(titleElement);
|
|
foundry2Button.insertAfter(titleElement);
|
|
bg3Button.insertAfter(titleElement);
|
|
discordButton.insertAfter(titleElement);
|
|
noThemeButton.insertAfter(titleElement);
|
|
});
|
|
}
|
|
|
|
Hooks.on("renderSettingsConfig", (app, html, data) => {
|
|
$("<div>")
|
|
.addClass("form-group dorako settings-header")
|
|
.html(
|
|
i18n("pf2e-dorako-ui.settings.theme.name") + `<p class="notes">${i18n("pf2e-dorako-ui.settings.theme.hint")}</p>`
|
|
)
|
|
.insertBefore($('[name="pf2e-dorako-ui.theme.app-theme"]').parents("div.form-group:first"));
|
|
$("<div>")
|
|
.addClass("form-group dorako settings-header")
|
|
.html(
|
|
i18n("pf2e-dorako-ui.settings.avatar.name") +
|
|
`<p class="notes">${i18n("pf2e-dorako-ui.settings.avatar.hint")}</p>`
|
|
)
|
|
.insertBefore($('[name="pf2e-dorako-ui.avatar.source"]').parents("div.form-group:first"));
|
|
$("<div>")
|
|
.addClass("form-group dorako settings-header")
|
|
.html(i18n("pf2e-dorako-ui.settings.ux.name") + `<p class="notes">${i18n("pf2e-dorako-ui.settings.ux.hint")}</p>`)
|
|
.insertBefore($('[name="pf2e-dorako-ui.ux.restructure-card-info"]').parents("div.form-group:first"));
|
|
$("<div>")
|
|
.addClass("form-group dorako settings-header")
|
|
.html(
|
|
i18n("pf2e-dorako-ui.settings.misc.name") + `<p class="notes">${i18n("pf2e-dorako-ui.settings.misc.hint")}</p>`
|
|
)
|
|
.insertBefore($('[name="pf2e-dorako-ui.misc.enable-debug-mode"]').parents("div.form-group:first"));
|
|
$("<div>")
|
|
.addClass("form-group dorako settings-header")
|
|
.html(
|
|
i18n("pf2e-dorako-ui.settings.customization.name") +
|
|
`<p class="notes">${i18n("pf2e-dorako-ui.settings.customization.hint")}</p>`
|
|
)
|
|
.insertBefore($('[name="pf2e-dorako-ui.customization.excluded-applications"]').parents("div.form-group:first"));
|
|
|
|
const isIdleHudEnabled = game.modules.get("pf2e-token-hud")?.active;
|
|
|
|
if (isIdleHudEnabled) {
|
|
$("<div>")
|
|
.addClass("form-group dorako settings-header")
|
|
.html(
|
|
i18n("pf2e-dorako-ui.settings.external-module.name") +
|
|
`<p class="notes">${i18n("pf2e-dorako-ui.settings.external-module.hint")}</p>`
|
|
)
|
|
.insertBefore($('[name="pf2e-dorako-ui.external-module.colorize-idle-hud"]').parents("div.form-group:first"));
|
|
} else {
|
|
$("div[data-setting-id*=external-module]").addClass("dorako-display-none");
|
|
}
|
|
});
|
|
|
|
Hooks.on("renderHUD", (app, html, data) => {
|
|
const isColorized = game.settings.get("pf2e-dorako-ui", "external-module.colorize-idle-hud");
|
|
if (!isColorized) return;
|
|
let html0 = html[0];
|
|
html0.classList.add("colorized");
|
|
});
|