Cache canvas.controls.ruler into local variable for readability and performance

This commit is contained in:
Manuel Vögele
2021-02-11 00:27:11 +01:00
parent 3141deb3a2
commit 94f5a49263
+30 -24
View File
@@ -130,52 +130,57 @@ function onKeyX(up) {
} }
function onKeyShift(up) { function onKeyShift(up) {
if (!canvas.controls.ruler.isDragRuler) const ruler = canvas.controls.ruler
if (!ruler.isDragRuler)
return false return false
const mousePosition = canvas.app.renderer.plugins.interaction.mouse.getLocalPosition(canvas.tokens) const mousePosition = canvas.app.renderer.plugins.interaction.mouse.getLocalPosition(canvas.tokens)
const rulerOffset = canvas.controls.ruler.rulerOffset const rulerOffset = ruler.rulerOffset
const measurePosition = {x: mousePosition.x + rulerOffset.x, y: mousePosition.y + rulerOffset.y} const measurePosition = {x: mousePosition.x + rulerOffset.x, y: mousePosition.y + rulerOffset.y}
canvas.controls.ruler.measure(measurePosition, {snap: up}) ruler.measure(measurePosition, {snap: up})
} }
function onTokenLeftDragStart(event) { function onTokenLeftDragStart(event) {
canvas.controls.ruler.draggedToken = this const ruler = canvas.controls.ruler
ruler.draggedToken = this
const tokenCenter = {x: this.x + canvas.grid.grid.w / 2, y: this.y + canvas.grid.grid.h / 2} const tokenCenter = {x: this.x + canvas.grid.grid.w / 2, y: this.y + canvas.grid.grid.h / 2}
canvas.controls.ruler.clear(); ruler.clear();
canvas.controls.ruler._state = Ruler.STATES.STARTING; ruler._state = Ruler.STATES.STARTING;
canvas.controls.ruler.rulerOffset = {x: tokenCenter.x - event.data.origin.x, y: tokenCenter.y - event.data.origin.y} ruler.rulerOffset = {x: tokenCenter.x - event.data.origin.x, y: tokenCenter.y - event.data.origin.y}
addWaypoint.call(canvas.controls.ruler, tokenCenter, false); addWaypoint.call(ruler, tokenCenter, false)
} }
function onTokenLeftDragMove(event) { function onTokenLeftDragMove(event) {
if (canvas.controls.ruler.isDragRuler) const ruler = canvas.controls.ruler
onMouseMove.call(canvas.controls.ruler, event) if (ruler.isDragRuler)
onMouseMove.call(ruler, event)
} }
function onTokenDragLeftDrop(event) { function onTokenDragLeftDrop(event) {
if (!canvas.controls.ruler.isDragRuler) const ruler = canvas.controls.ruler
if (!ruler.isDragRuler)
return false return false
const selectedTokens = canvas.tokens.placeables.filter(token => token._controlled) const selectedTokens = canvas.tokens.placeables.filter(token => token._controlled)
moveTokens.call(canvas.controls.ruler, canvas.controls.ruler.draggedToken, selectedTokens) moveTokens.call(ruler, ruler.draggedToken, selectedTokens)
canvas.controls.ruler.draggedToken = null ruler.draggedToken = null
return true return true
} }
function onTokenDragLeftCancel(event) { function onTokenDragLeftCancel(event) {
// This function is invoked by right clicking // This function is invoked by right clicking
if (!canvas.controls.ruler.isDragRuler) const ruler = canvas.controls.ruler
if (!ruler.isDragRuler)
return false return false
if (canvas.controls.ruler._state === Ruler.STATES.MEASURING) { if (ruler._state === Ruler.STATES.MEASURING) {
if (!game.settings.get(settingsKey, "swapSpacebarRightClick")) { if (!game.settings.get(settingsKey, "swapSpacebarRightClick")) {
if (canvas.controls.ruler.waypoints.length > 1) if (ruler.waypoints.length > 1)
event.preventDefault() event.preventDefault()
deleteWaypoint() deleteWaypoint()
} }
else { else {
event.preventDefault() event.preventDefault()
const snap = !event.shiftKey const snap = !event.shiftKey
addWaypoint.call(canvas.controls.ruler, canvas.controls.ruler.destination, snap) addWaypoint.call(ruler, ruler.destination, snap)
} }
} }
return true return true
@@ -204,16 +209,17 @@ function addWaypoint(point, snap=true) {
} }
function deleteWaypoint() { function deleteWaypoint() {
if (canvas.controls.ruler.waypoints.length > 1) { const ruler = canvas.controls.ruler
if (ruler.waypoints.length > 1) {
const mousePosition = canvas.app.renderer.plugins.interaction.mouse.getLocalPosition(canvas.tokens) const mousePosition = canvas.app.renderer.plugins.interaction.mouse.getLocalPosition(canvas.tokens)
const rulerOffset = canvas.controls.ruler.rulerOffset const rulerOffset = ruler.rulerOffset
canvas.controls.ruler._removeWaypoint({x: mousePosition.x + rulerOffset.x, y: mousePosition.y + rulerOffset.y}) ruler._removeWaypoint({x: mousePosition.x + rulerOffset.x, y: mousePosition.y + rulerOffset.y})
game.user.broadcastActivity({ruler: canvas.controls.ruler}) game.user.broadcastActivity({ruler: ruler})
} }
else { else {
const token = canvas.controls.ruler.draggedToken const token = ruler.draggedToken
canvas.controls.ruler._endMeasurement() ruler._endMeasurement()
canvas.controls.ruler.draggedToken = null ruler.draggedToken = null
// Deactivate the drag workflow in mouse // Deactivate the drag workflow in mouse
token.mouseInteractionManager._deactivateDragEvents(); token.mouseInteractionManager._deactivateDragEvents();