Rename src/ to js/
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
import {settingsKey} from "./settings.js";
|
||||
import {getMeasurePosition, setSnapParameterOnOptions} from "./util.js";
|
||||
|
||||
export let disableSnap = false;
|
||||
export let moveWithoutAnimation = false;
|
||||
export let togglePathfinding = false;
|
||||
|
||||
export function registerKeybindings() {
|
||||
game.keybindings.register(settingsKey, "cancelDrag", {
|
||||
name: "drag-ruler.keybindings.cancelDrag",
|
||||
onDown: cancelDrag,
|
||||
uneditable: [{
|
||||
key: "Escape",
|
||||
}],
|
||||
precedence: -1,
|
||||
});
|
||||
|
||||
game.keybindings.register(settingsKey, "createWaypoint", {
|
||||
name: "drag-ruler.keybindings.createWaypoint",
|
||||
onDown: handleCreateWaypoint,
|
||||
editable: [{
|
||||
key: "Space"
|
||||
}],
|
||||
precedence: -1,
|
||||
});
|
||||
|
||||
game.keybindings.register(settingsKey, "deleteWaypoint", {
|
||||
name: "drag-ruler.keybindings.deleteWaypoint",
|
||||
onDown: handleDeleteWaypoint,
|
||||
precedence: -1,
|
||||
});
|
||||
|
||||
game.keybindings.register(settingsKey, "disableSnap", {
|
||||
name: "drag-ruler.keybindings.disableSnap.name",
|
||||
hint: "drag-ruler.keybindings.disableSnap.hint",
|
||||
onDown: handleDisableSnap,
|
||||
onUp: handleDisableSnap,
|
||||
editable: [{
|
||||
key: "ShiftLeft",
|
||||
}],
|
||||
precedence: -1,
|
||||
});
|
||||
|
||||
game.keybindings.register(settingsKey, "moveWithoutAnimation", {
|
||||
name: "drag-ruler.keybindings.moveWithoutAnimation.name",
|
||||
hint: "drag-ruler.keybindings.moveWithoutAnimation.hint",
|
||||
onDown: handleMoveWithoutAnimation,
|
||||
onUp: handleMoveWithoutAnimation,
|
||||
editable: [{
|
||||
key: "AltLeft",
|
||||
}],
|
||||
precedence: -1,
|
||||
});
|
||||
|
||||
if (game.settings.get(settingsKey, "allowPathfinding")) {
|
||||
game.keybindings.register(settingsKey, "togglePathfinding", {
|
||||
name: "drag-ruler.keybindings.togglePathfinding.name",
|
||||
hint: "drag-ruler.keybindings.togglePathfinding.hint",
|
||||
onDown: handleTogglePathfinding,
|
||||
onUp: handleTogglePathfinding,
|
||||
precedence: -1,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function handleDeleteWaypoint() {
|
||||
const ruler = canvas.controls.ruler;
|
||||
if (!ruler?.draggedEntity)
|
||||
return false;
|
||||
ruler.dragRulerDeleteWaypoint();
|
||||
return true;
|
||||
}
|
||||
|
||||
function handleCreateWaypoint() {
|
||||
const ruler = canvas.controls.ruler;
|
||||
// .draggedEntity is used here because .isDragRuler only returns true once the ruler started measuring
|
||||
// Ruler can end up being undefined here if no canvas is active
|
||||
if (!ruler?.draggedEntity)
|
||||
return false;
|
||||
|
||||
let options = {};
|
||||
setSnapParameterOnOptions(ruler, options);
|
||||
|
||||
if (ruler._state === Ruler.STATES.INACTIVE) {
|
||||
ruler.dragRulerStart(options);
|
||||
}
|
||||
else {
|
||||
ruler.dragRulerAddWaypoint(getMeasurePosition(), options);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function cancelDrag() {
|
||||
const ruler = canvas.controls.ruler;
|
||||
if (!ruler?.draggedEntity)
|
||||
return false;
|
||||
ruler.dragRulerAbortDrag();
|
||||
return true;
|
||||
}
|
||||
|
||||
function handleDisableSnap(event) {
|
||||
disableSnap = !event.up;
|
||||
|
||||
const ruler = canvas.controls.ruler;
|
||||
if (!ruler?.isDragRuler)
|
||||
return false;
|
||||
if (ruler._state !== Ruler.STATES.MEASURING)
|
||||
return false;
|
||||
|
||||
ruler.measure(getMeasurePosition(), {snap: !disableSnap});
|
||||
return false;
|
||||
}
|
||||
|
||||
function handleMoveWithoutAnimation(event) {
|
||||
moveWithoutAnimation = !event.up;
|
||||
}
|
||||
|
||||
function handleTogglePathfinding(event) {
|
||||
togglePathfinding = !event.up;
|
||||
|
||||
const ruler = canvas.controls.ruler;
|
||||
if (!ruler?.isDragRuler)
|
||||
return false;
|
||||
if (ruler._state !== Ruler.STATES.MEASURING)
|
||||
return false;
|
||||
|
||||
ruler.measure(getMeasurePosition(), {snap: !disableSnap});
|
||||
return false;
|
||||
}
|
||||
Reference in New Issue
Block a user