add renderer framework for actor dropper.
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
const enrichers = [
|
||||
{
|
||||
id: "mb-actor-drop-enricher",
|
||||
pattern:
|
||||
/@ActorDrop\[(?<uuid>\S+)(?:\s+(?<qty>\d+))?\](?:\{(?<label>[^}]+)\})?/g,
|
||||
enricher: _actorDropper,
|
||||
},
|
||||
];
|
||||
|
||||
function _actorDropper(match, options) {
|
||||
if (!match.groups) return null;
|
||||
const groups = match.groups;
|
||||
const uuid = groups.uuid;
|
||||
const qty = Number(groups.qty) || 1;
|
||||
const label =
|
||||
groups.label || foundry.utils.fromUuidSync(uuid)?.name || "Unknown";
|
||||
const dataset = {
|
||||
uuid,
|
||||
qty,
|
||||
};
|
||||
const anchor = document.createElement("a");
|
||||
anchor.classList.add("mb-assets-actor-drop-link");
|
||||
for (let [k, v] of Object.entries(dataset)) {
|
||||
anchor.dataset[k] = v;
|
||||
}
|
||||
anchor.innerHTML = `<i class="fas fa-user"></i> ${qty} × ${label}`;
|
||||
return anchor;
|
||||
}
|
||||
|
||||
function _onClickActorDropperLink(ev) {
|
||||
console.log(ev);
|
||||
}
|
||||
|
||||
Hooks.once("ready", async () => {
|
||||
for (const enricher of enrichers) {
|
||||
CONFIG.TextEditor.enrichers.push(enricher);
|
||||
}
|
||||
TokenMagic.importPresetLibraryFromPath(
|
||||
"modules/mb-assets/config/tmfx-presets.json",
|
||||
);
|
||||
});
|
||||
|
||||
Hooks.on("renderJournalSheet", (sheet, html, data) => {
|
||||
console.log("journal", sheet, html, data);
|
||||
// links = html.querySelectorAll()
|
||||
// $("a.mb-assets-actor-drop-link", html)
|
||||
// .unbind("click")
|
||||
// .click(_onClickActorDropperLink);
|
||||
});
|
||||
|
||||
Hooks.on("renderJournalPageSheet", (sheet, html, data) => {
|
||||
console.log("journal page", sheet, html, data);
|
||||
// links = html.querySelectorAll()
|
||||
// $("a.mb-assets-actor-drop-link", html)
|
||||
// .unbind("click")
|
||||
// .click(_onClickActorDropperLink);
|
||||
});
|
||||
|
||||
Hooks.on("renderJournalEntryPageSheet", (sheet, html, data) => {
|
||||
console.log("JournalEntryPage", sheet, html, data);
|
||||
// links = html.querySelectorAll()
|
||||
// $("a.mb-assets-actor-drop-link", html)
|
||||
// .unbind("click")
|
||||
// .click(_onClickActorDropperLink);
|
||||
});
|
||||
|
||||
Hooks.on("renderItemSheet", (sheet, html, data) => {
|
||||
console.log("item", sheet, html, data);
|
||||
// links = html.querySelectorAll()
|
||||
// $("a.mb-assets-actor-drop-link", html)
|
||||
// .unbind("click")
|
||||
// .click(_onClickActorDropperLink);
|
||||
});
|
||||
|
||||
Hooks.on("renderJournalPageSheet", (sheet, html, data) => {
|
||||
console.log(sheet, html, data);
|
||||
// links = html.querySelectorAll()
|
||||
// $("a.mb-assets-actor-drop-link", html)
|
||||
// .unbind("click")
|
||||
// .click(_onClickActorDropperLink);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user