diff --git a/src/foundry_imports.js b/src/foundry_imports.js index a697f43..ab8e281 100644 --- a/src/foundry_imports.js +++ b/src/foundry_imports.js @@ -133,8 +133,8 @@ export function onMouseMove(event) { // Extract event data const destination = { - x: event.data.destination.x + this.rulerOffset.x, - y: event.data.destination.y + this.rulerOffset.y, + x: event.interactionData.destination.x + this.rulerOffset.x, + y: event.interactionData.destination.y + this.rulerOffset.y, }; // Hide any existing Token HUD @@ -148,7 +148,7 @@ export function onMouseMove(event) { function scheduleMeasurement(destination, event) { const measurementInterval = 50; const mt = event._measureTime || 0; - const originalEvent = event.data.originalEvent; + const originalEvent = event.interactionData.originalEvent; if (Date.now() - mt > measurementInterval) { this.measure(destination, {snap: !disableSnap}); event._measureTime = Date.now(); diff --git a/src/main.js b/src/main.js index f3d23d1..ed675fd 100644 --- a/src/main.js +++ b/src/main.js @@ -138,8 +138,8 @@ function onEntityLeftDragStart(wrapped, event) { ruler.draggedEntity = this; const entityCenter = getEntityCenter(this); ruler.rulerOffset = { - x: entityCenter.x - event.data.origin.x, - y: entityCenter.y - event.data.origin.y, + x: entityCenter.x - event.interactionData.origin.x, + y: entityCenter.y - event.interactionData.origin.y, }; if (game.settings.get(settingsKey, "autoStartMeasurement")) { let options = {}; @@ -215,8 +215,8 @@ function applyGridlessSnapping(event) { if (canvas.grid.type !== CONST.GRID_TYPES.GRIDLESS) return; const rasterWidth = 35 / canvas.stage.scale.x; - const tokenX = event.data.destination.x; - const tokenY = event.data.destination.y; + const tokenX = event.interactionData.destination.x; + const tokenY = event.interactionData.destination.y; const destination = {x: tokenX + ruler.rulerOffset.x, y: tokenY + ruler.rulerOffset.y}; const ranges = getRangesFromSpeedProvider(ruler.draggedEntity); @@ -241,13 +241,13 @@ function applyGridlessSnapping(event) { const deltaY = destination.y - rasterLocation.y; const rasterDistance = Math.hypot(deltaX, deltaY); if (rasterDistance < rasterWidth) { - event.data.destination.x = rasterLocation.x - ruler.rulerOffset.x; - event.data.destination.y = rasterLocation.y - ruler.rulerOffset.y; + event.interactionData.destination.x = rasterLocation.x - ruler.rulerOffset.x; + event.interactionData.destination.y = rasterLocation.y - ruler.rulerOffset.y; } } } else { let waypointDistance = 0; - let origin = event.data.origin; + let origin = event.interactionData.origin; if (ruler.waypoints.length > 1) { const segments = ruler.constructor .dragRulerGetRaysFromWaypoints(ruler.waypoints, destination) @@ -271,8 +271,8 @@ function applyGridlessSnapping(event) { .reduce((a, b) => Math.max(a, b), 0); if (targetDistance) { if (distance < targetDistance + rasterWidth) { - event.data.destination.x = origin.x + (deltaX * targetDistance) / distance; - event.data.destination.y = origin.y + (deltaY * targetDistance) / distance; + event.interactionData.destination.x = origin.x + (deltaX * targetDistance) / distance; + event.interactionData.destination.y = origin.y + (deltaY * targetDistance) / distance; } } } diff --git a/src/ruler.js b/src/ruler.js index e6b90a1..caa3f8f 100644 --- a/src/ruler.js +++ b/src/ruler.js @@ -17,6 +17,7 @@ import { getTokenShape, isPathfindingEnabled, } from "./util.js"; +import {getPointer} from "./util.js"; export function extendRuler() { class DragRulerRuler extends CONFIG.Canvas.rulerClass { @@ -379,7 +380,7 @@ export function extendRuler() { options.snap = options.snap ?? true; if (this.waypoints.filter(w => !w.isPrevious).length > 1) { event.preventDefault(); - const mousePosition = canvas.app.renderer.plugins.interaction.mouse.getLocalPosition( + const mousePosition = getPointer().getLocalPosition( canvas.tokens, ); const rulerOffset = this.rulerOffset; @@ -483,7 +484,7 @@ export function extendRuler() { if (isToken && game.settings.get(settingsKey, "enableMovementHistory")) ruler.dragRulerAddWaypointHistory(getMovementHistory(entity)); ruler.dragRulerAddWaypoint(entityCenter, {snap: false}); - const mousePosition = canvas.app.renderer.plugins.interaction.mouse.getLocalPosition( + const mousePosition = getPointer().getLocalPosition( canvas.tokens, ); const destination = { diff --git a/src/util.js b/src/util.js index 4c70eaa..b45586d 100644 --- a/src/util.js +++ b/src/util.js @@ -285,8 +285,12 @@ export function isClose(a, b, delta) { return Math.abs(a - b) <= delta; } +export function getPointer() { + return canvas.app.renderer.plugins.interaction?.mouse ?? canvas.app.renderer.events.pointer +} + export function getMeasurePosition() { - const mousePosition = canvas.app.renderer.plugins.interaction.mouse.getLocalPosition( + const mousePosition = getPointer().getLocalPosition( canvas.tokens, ); const rulerOffset = canvas.controls.ruler.rulerOffset;