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."
|
"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": {
|
"genericSpeedProvider": {
|
||||||
"settings": {
|
"settings": {
|
||||||
"dashMultiplier": {
|
"dashMultiplier": {
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
"text": "Drag Ruler requires the socketlib module to work properly. Please activate the socketlib module in this world."
|
"text": "Drag Ruler requires the socketlib module to work properly. Please activate the socketlib module in this world."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"resetMovementHistory": "Reset Movement History",
|
||||||
"genericSpeedProvider": {
|
"genericSpeedProvider": {
|
||||||
"settings": {
|
"settings": {
|
||||||
"dashMultiplier": {
|
"dashMultiplier": {
|
||||||
|
|||||||
+10
-1
@@ -5,7 +5,7 @@ import {checkDependencies, getHexSizeSupportTokenGridCenter} from "./compatibili
|
|||||||
import {moveTokens, onMouseMove} from "./foundry_imports.js"
|
import {moveTokens, onMouseMove} from "./foundry_imports.js"
|
||||||
import {performMigrations} from "./migration.js"
|
import {performMigrations} from "./migration.js"
|
||||||
import {DragRulerRuler} from "./ruler.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 {registerSettings, settingsKey} from "./settings.js"
|
||||||
import {SpeedProvider} from "./speed_provider.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() {
|
function hookTokenDragHandlers() {
|
||||||
const originalDragLeftStartHandler = Token.prototype._onDragLeftStart
|
const originalDragLeftStartHandler = Token.prototype._onDragLeftStart
|
||||||
Token.prototype._onDragLeftStart = function(event) {
|
Token.prototype._onDragLeftStart = function(event) {
|
||||||
|
|||||||
@@ -72,3 +72,14 @@ export function getMovementHistory(token) {
|
|||||||
return [];
|
return [];
|
||||||
return dragRulerFlags.passedWaypoints ?? [];
|
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);
|
socket.register("updateCombatantDragRulerFlags", _socketUpdateCombatantDragRulerFlags);
|
||||||
});
|
});
|
||||||
|
|
||||||
export async function updateCombatantDragRulerFlags(combat, combatant, flags) {
|
export function updateCombatantDragRulerFlags(combat, combatant, flags) {
|
||||||
const combatId = combat.id;
|
const combatId = combat.id;
|
||||||
const combatantId = combatant._id;
|
const combatantId = combatant._id;
|
||||||
return socket.executeAsGM(_socketUpdateCombatantDragRulerFlags, combatId, combatantId, flags);
|
return socket.executeAsGM(_socketUpdateCombatantDragRulerFlags, combatId, combatantId, flags);
|
||||||
|
|||||||
Reference in New Issue
Block a user