diff --git a/lang/en.json b/lang/en.json index 5c6113e..f6b0f44 100644 --- a/lang/en.json +++ b/lang/en.json @@ -34,6 +34,10 @@ "name": "Show PC speed to everyone", "hint": "If enabled the coloring based on actor speed for player characters will shown to everyone, even if they don't have observer permission for the character sheet." }, + "autoPathfinding": { + "name": "Pathfinding by default", + "hint": "If enabled, dragging a token will automatically use a pathfinding ruler" + }, "enableMovementHistory": { "name": "Enable movement history during combat", "hint": "If enabled, Drag Ruler will remember the path a token took during it's turn in combat and will display it when you pick the token back up." diff --git a/src/foundry_imports.js b/src/foundry_imports.js index bb9b67c..4f42420 100644 --- a/src/foundry_imports.js +++ b/src/foundry_imports.js @@ -4,6 +4,7 @@ import {Line} from "./geometry.js"; import {getColorForDistance} from "./main.js" import {trackRays} from "./movement_tracking.js" import {find_path} from "./pathfinding.js"; +import {settingsKey} from "./settings.js"; import {recalculate} from "./socket.js"; import {applyTokenSizeOffset, getSnapPointForEntity, getSnapPointForToken, getTokenShape, highlightTokenShape, zip} from "./util.js"; @@ -135,7 +136,7 @@ function scheduleMeasurement(destination, event) { const mt = event._measureTime || 0; const originalEvent = event.data.originalEvent; if (Date.now() - mt > measurementInterval) { - this.measure(destination, {snap: !originalEvent.shiftKey, pathfinding: game.keyboard.isDown("y")}); + this.measure(destination, {snap: !originalEvent.shiftKey, pathfinding: game.settings.get(settingsKey, "autoPathfinding") != game.keyboard.isDown("y")}); event._measureTime = Date.now(); this._state = Ruler.STATES.MEASURING; window.clearTimeout(this.deferredMeasurementTimeout); diff --git a/src/settings.js b/src/settings.js index 004a180..d23354d 100644 --- a/src/settings.js +++ b/src/settings.js @@ -47,6 +47,15 @@ export function registerSettings() { default: true, }); + game.settings.register(settingsKey, "autoPathfinding", { + name: "drag-ruler.settings.autoPathfinding.name", + hint: "drag-ruler.settings.autoPathfinding.hint", + scpoe: "client", + config: true, + type: Boolean, + defualt: true, + }); + game.settings.register(settingsKey, "lastTerrainRulerHintTime", { config: false, type: Number,