added option for updating on move
This commit is contained in:
@@ -7,6 +7,10 @@
|
|||||||
"empty": "No auras configured."
|
"empty": "No auras configured."
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"refreshDuringMove": {
|
||||||
|
"name": "Refresh During Movement",
|
||||||
|
"hint": "If disabled, aura highlights will only refresh when a token stops moving or its settings are updated. This can improve performance."
|
||||||
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"name": "Aura Name"
|
"name": "Aura Name"
|
||||||
},
|
},
|
||||||
|
|||||||
+27
-2
@@ -46,6 +46,20 @@ let highlightedFilterTargets = new Set();
|
|||||||
let pendingHighlightRefresh = null;
|
let pendingHighlightRefresh = null;
|
||||||
const alphaShapeCache = new Map();
|
const alphaShapeCache = new Map();
|
||||||
|
|
||||||
|
const REFRESH_DURING_MOVE_SETTING = "refreshDuringMove";
|
||||||
|
|
||||||
|
Hooks.once("init", () => {
|
||||||
|
game.settings.register(MODULE_ID, REFRESH_DURING_MOVE_SETTING, {
|
||||||
|
name: localize("settings.refreshDuringMove.name"),
|
||||||
|
hint: localize("settings.refreshDuringMove.hint"),
|
||||||
|
scope: "client",
|
||||||
|
config: true,
|
||||||
|
type: Boolean,
|
||||||
|
default: true,
|
||||||
|
onChange: scheduleAuraHighlightRefresh,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
Hooks.on("renderTokenConfig", injectAurasTab);
|
Hooks.on("renderTokenConfig", injectAurasTab);
|
||||||
Hooks.on("renderPrototypeTokenConfig", injectAurasTab);
|
Hooks.on("renderPrototypeTokenConfig", injectAurasTab);
|
||||||
Hooks.on("preUpdateToken", (_token, changes) =>
|
Hooks.on("preUpdateToken", (_token, changes) =>
|
||||||
@@ -58,9 +72,20 @@ Hooks.on("canvasReady", scheduleAuraHighlightRefresh);
|
|||||||
Hooks.on("canvasTearDown", clearAuraHighlights);
|
Hooks.on("canvasTearDown", clearAuraHighlights);
|
||||||
Hooks.on("controlToken", scheduleAuraHighlightRefresh);
|
Hooks.on("controlToken", scheduleAuraHighlightRefresh);
|
||||||
Hooks.on("updateToken", scheduleAuraHighlightRefresh);
|
Hooks.on("updateToken", scheduleAuraHighlightRefresh);
|
||||||
Hooks.on("moveToken", scheduleAuraHighlightRefresh);
|
Hooks.on("moveToken", () => {
|
||||||
|
if (game.settings.get(MODULE_ID, REFRESH_DURING_MOVE_SETTING))
|
||||||
|
scheduleAuraHighlightRefresh();
|
||||||
|
});
|
||||||
Hooks.on("stopToken", scheduleAuraHighlightRefresh);
|
Hooks.on("stopToken", scheduleAuraHighlightRefresh);
|
||||||
Hooks.on("refreshToken", scheduleAuraHighlightRefresh);
|
Hooks.on("refreshToken", (token) => {
|
||||||
|
const isAnimating = !!(token.animationContexts?.size || token._animation);
|
||||||
|
if (
|
||||||
|
game.settings.get(MODULE_ID, REFRESH_DURING_MOVE_SETTING) ||
|
||||||
|
!isAnimating
|
||||||
|
) {
|
||||||
|
scheduleAuraHighlightRefresh();
|
||||||
|
}
|
||||||
|
});
|
||||||
Hooks.on("createToken", scheduleAuraHighlightRefresh);
|
Hooks.on("createToken", scheduleAuraHighlightRefresh);
|
||||||
Hooks.on("deleteToken", scheduleAuraHighlightRefresh);
|
Hooks.on("deleteToken", scheduleAuraHighlightRefresh);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user