import { SettingsMenuDorakoUX } from "./menu.js"; import { refreshChat } from "./settings.js"; export class AvatarSettings extends SettingsMenuDorakoUX { static namespace = "avatar"; static SETTINGS = [ "source", "hide-when-token-hidden", "hide-gm-avatar-when-secret", "size", "popout-support", "reacts-to-degree-of-success", "small-creature-token-avatar-size", "use-user-avatar", ]; static get settings() { return { source: { name: "pf2e-dorako-ux.settings.avatar-source.name", hint: "pf2e-dorako-ux.settings.avatar-source.hint", scope: "client", config: true, default: "token", type: String, choices: { token: "pf2e-dorako-ux.settings.avatar-source.choice.token", actor: "pf2e-dorako-ux.settings.avatar-source.choice.actor", none: "pf2e-dorako-ux.text.disabled", }, requiresReload: false, onChange: refreshChat, }, size: { name: "pf2e-dorako-ux.settings.avatar-size.name", hint: "pf2e-dorako-ux.settings.avatar-size.hint", scope: "client", type: Number, default: 40, range: { min: 10, max: 60, step: 1, }, config: true, requiresReload: false, onChange: () => { const root = document.querySelector(":root").style; root.setProperty("--avatar-size", game.settings.get("pf2e-dorako-ux", "avatar.size").toString() + "px"); }, }, "small-creature-token-avatar-size": { name: "pf2e-dorako-ux.settings.small-creature-token-avatar-size.name", hint: "pf2e-dorako-ux.settings.small-creature-token-avatar-size.hint", scope: "client", type: Number, default: 0.8, range: { min: 0.7, max: 1.0, step: 0.1, }, config: true, requiresReload: false, onChange: refreshChat, }, "popout-support": { name: "pf2e-dorako-ux.settings.popout-support.name", hint: "pf2e-dorako-ux.settings.popout-support.hint", scope: "world", type: Boolean, default: true, config: true, requiresReload: false, onChange: refreshChat, }, "reacts-to-degree-of-success": { name: "pf2e-dorako-ux.settings.avatar-reacts-to-degree-of-success.name", hint: "pf2e-dorako-ux.settings.avatar-reacts-to-degree-of-success.hint", scope: "client", type: Boolean, default: true, config: true, requiresReload: false, onChange: refreshChat, }, "hide-when-token-hidden": { name: "pf2e-dorako-ux.settings.hide-avatar-when-token-hidden.name", hint: "pf2e-dorako-ux.settings.hide-avatar-when-token-hidden.hint", scope: "world", type: Boolean, default: true, config: true, requiresReload: false, onChange: refreshChat, }, "hide-gm-avatar-when-secret": { name: "pf2e-dorako-ux.settings.hide-gm-avatar-when-secret.name", hint: "pf2e-dorako-ux.settings.hide-gm-avatar-when-secret.hint", scope: "world", config: true, default: true, type: Boolean, requiresReload: false, onChange: refreshChat, }, "use-user-avatar": { name: "pf2e-dorako-ux.settings.use-user-avatar.name", hint: "pf2e-dorako-ux.settings.use-user-avatar.hint", scope: "world", type: Boolean, default: false, config: true, requiresReload: false, onChange: refreshChat, }, }; } }