import { CharacterSheetContext, getSetting, ModuleSetting, QuickInsert, setSetting } from './quick-insert.js';
|
|
import './vendor.js';
|
|
|
|
// Warhammer Fantasy Roleplay 4th edition integration
|
|
const SYSTEM_NAME = "wfrp4e";
|
|
const defaultSheetFilters = {
|
|
career: "wfrp4e.careers",
|
|
skill: "wfrp4e.skills",
|
|
talent: "wfrp4e.talents",
|
|
injury: "wfrp4e.injuries",
|
|
critical: "wfrp4e.criticals",
|
|
weapon: "wfrp4e.trappings",
|
|
trapping: "wfrp4e.trappings",
|
|
spell: "wfrp4e.spells",
|
|
prayer: "wfrp4e.prayers",
|
|
psychology: "wfrp4e.psychologies",
|
|
mutation: "wfrp4e.mutations",
|
|
disease: "wfrp4e.diseases",
|
|
};
|
|
class Wfrp4eSheetContext extends CharacterSheetContext {
|
|
constructor(documentSheet, anchor, sheetType, insertType) {
|
|
super(documentSheet, anchor);
|
|
this.spawnCSS = {
|
|
...this.spawnCSS,
|
|
left: this.spawnCSS?.left - 10,
|
|
bottom: this.spawnCSS?.bottom + 10,
|
|
};
|
|
if (sheetType && insertType) {
|
|
const sheetFilters = getSetting(ModuleSetting.FILTERS_SHEETS).baseFilters;
|
|
this.filter =
|
|
sheetFilters[`${sheetType}.${insertType}`] || sheetFilters[insertType];
|
|
}
|
|
}
|
|
}
|
|
function sheetWfrp4eRenderHook(app, sheetType) {
|
|
if (app.element.find(".quick-insert-link").length > 0) {
|
|
return;
|
|
}
|
|
const link = `<a class="quick-insert-link" title="Quick Insert"><i class="fas fa-search"></i></a>`;
|
|
app.element.find("a.item-create").each((i, el) => {
|
|
const type = el.dataset.type || "";
|
|
if (!Object.keys(defaultSheetFilters).includes(type))
|
|
return;
|
|
const linkEl = $(link);
|
|
$(el).after(linkEl);
|
|
linkEl.on("click", () => {
|
|
const context = new Wfrp4eSheetContext(app, linkEl, sheetType, type);
|
|
QuickInsert.open(context);
|
|
});
|
|
});
|
|
}
|
|
function init() {
|
|
if (game.user?.isGM) {
|
|
const customFilters = getSetting(ModuleSetting.FILTERS_SHEETS).baseFilters;
|
|
setSetting(ModuleSetting.FILTERS_SHEETS, {
|
|
baseFilters: {
|
|
...defaultSheetFilters,
|
|
...customFilters,
|
|
},
|
|
});
|
|
}
|
|
Hooks.on("renderActorSheetWfrp4eCharacter", (app) => {
|
|
getSetting(ModuleSetting.FILTERS_SHEETS_ENABLED) &&
|
|
sheetWfrp4eRenderHook(app, "character");
|
|
});
|
|
console.log("Quick Insert | wfrp4e system extensions initiated");
|
|
}
|
|
|
|
export { SYSTEM_NAME, Wfrp4eSheetContext, defaultSheetFilters, init, sheetWfrp4eRenderHook };
|
|
//# sourceMappingURL=wfrp4e.js.map
|