Add a context menu entry that the gm can use to reset the movement history
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
"text": "Drag Ruler benötigt das socketlib-Modul, um korrekt zu funktionieren. Bitte aktiviere das socketlib-Modul in dieser Welt."
|
||||
}
|
||||
},
|
||||
"resetMovementHistory": "Bewegungsverlauf zurücksetzen",
|
||||
"genericSpeedProvider": {
|
||||
"settings": {
|
||||
"dashMultiplier": {
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
"text": "Drag Ruler requires the socketlib module to work properly. Please activate the socketlib module in this world."
|
||||
}
|
||||
},
|
||||
"resetMovementHistory": "Reset Movement History",
|
||||
"genericSpeedProvider": {
|
||||
"settings": {
|
||||
"dashMultiplier": {
|
||||
|
||||
+10
-1
@@ -5,7 +5,7 @@ import {checkDependencies, getHexSizeSupportTokenGridCenter} from "./compatibili
|
||||
import {moveTokens, onMouseMove} from "./foundry_imports.js"
|
||||
import {performMigrations} from "./migration.js"
|
||||
import {DragRulerRuler} from "./ruler.js";
|
||||
import {getMovementHistory} from "./movement_tracking.js";
|
||||
import {getMovementHistory, resetMovementHistory} from "./movement_tracking.js";
|
||||
import {registerSettings, settingsKey} from "./settings.js"
|
||||
import {SpeedProvider} from "./speed_provider.js"
|
||||
|
||||
@@ -42,6 +42,15 @@ Hooks.on("canvasReady", () => {
|
||||
})
|
||||
})
|
||||
|
||||
Hooks.on("getCombatTrackerEntryContext", function (html, menu) {
|
||||
const entry = {
|
||||
name: "drag-ruler.resetMovementHistory",
|
||||
icon: '<i class="fas fa-undo-alt"></i>',
|
||||
callback: li => resetMovementHistory(ui.combat.combat, li.data('combatant-id')),
|
||||
};
|
||||
menu.splice(1, 0, entry);
|
||||
});
|
||||
|
||||
function hookTokenDragHandlers() {
|
||||
const originalDragLeftStartHandler = Token.prototype._onDragLeftStart
|
||||
Token.prototype._onDragLeftStart = function(event) {
|
||||
|
||||
@@ -72,3 +72,14 @@ export function getMovementHistory(token) {
|
||||
return [];
|
||||
return dragRulerFlags.passedWaypoints ?? [];
|
||||
}
|
||||
|
||||
export async function resetMovementHistory(combat, combatantId) {
|
||||
const combatant = combat.getCombatant(combatantId);
|
||||
const dragRulerFlags = combatant.flags.dragRuler;
|
||||
if (!dragRulerFlags)
|
||||
return;
|
||||
dragRulerFlags.passedWaypoints = undefined;
|
||||
dragRulerFlags.trackedRound = undefined;
|
||||
dragRulerFlags.rulerState = undefined;
|
||||
await updateCombatantDragRulerFlags(combat, combatant, dragRulerFlags);
|
||||
}
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ Hooks.once("socketlib.ready", () => {
|
||||
socket.register("updateCombatantDragRulerFlags", _socketUpdateCombatantDragRulerFlags);
|
||||
});
|
||||
|
||||
export async function updateCombatantDragRulerFlags(combat, combatant, flags) {
|
||||
export function updateCombatantDragRulerFlags(combat, combatant, flags) {
|
||||
const combatId = combat.id;
|
||||
const combatantId = combatant._id;
|
||||
return socket.executeAsGM(_socketUpdateCombatantDragRulerFlags, combatId, combatantId, flags);
|
||||
|
||||
Reference in New Issue
Block a user